首页
学习
活动
专区
工具
TVP
发布
社区首页 >专栏 >html中如何设置默认图片?

html中如何设置默认图片?

作者头像
Javanx
发布2019-09-04 15:23:56
4.8K0
发布2019-09-04 15:23:56
举报
文章被收录于专栏:web秀web秀

前言

大家可能都知道img标签是怎么设置默认图片的,但是你知道background-img是如何设置默认图片的嘛?

img

<img src="图片的url地址" alt="图片描述" onerror="this.src='默认图片的url地址'"/>

这里是应用了img标签的onerror事件,当加载失败就用默认图片地址。但是这里可能出现如果默认图片地址也加载不出来,或者失败,在IE内核的浏览器下就会反复加载,出现死循环,最后造成堆栈溢出错误。因此, 需要用下面两种方法解决: 1. 更改 onerror 代码为其它处理方式或者确保 onerror 中的默认图片足够小,并且存在。 2. 控制 onerror 事件只触发一次,需要增加这句话:this.onerror=null; 增加后如下:

<img src="图片的url地址" alt="图片描述" onerror="this.src='默认图片的url地址';this.onerror=null"/>

background-img

background是可以设置多个背景图片的,最前面的优先级越高,所以如果javan1.jpg没有就好显示第二个javan2.jpg,如果还没有就好显示第三个javan3.jpg。 第一种:

background: url("javan1.jpg") 0 0 no-repeat,
            url("javan2.jpg") 200px 0 no-repeat,
            url("javan3.jpg") 400px 201px no-repeat;

第二种:

background-image: url("javan1.jpg"), url("javan2.jpg"), url("javan3.jpg");
background-repeat: no-repeat, no-repeat, no-repeat;  
background-position: 0 0, 200px 0, 400px 201px; 

需要注意的是:IE8及更早浏览器不支持CSS3 background-image,即不支持多背景和使用渐变作为背景图像。

拓展-CSS渐变

background-image: linear-gradient(  [ <angle> | <side-or-corner> ,]? <color-stop> [, <color-stop>]+ );

上面这种CSS语法我们经常见到,可能有人看不懂具体的意思,其实上面的些符号含义与正则表达式有很多一致之处: 1. [] 在正则中表示一个字符类,这里,你可以理解为一个小单元。 2. | 表示候选。也就是“或者”的意思,要么前面的,要么就后面的。 3. ? 为量词,表示0个或1个,言外之意就是,你可以不指定方向,直接渐变色走起。 4. + 也是量词,表示1个或者更多个。因此,终止颜色是不可缺少的。例如:linear-gradient(red)是酱油命,白板。 5. <> 中的是关键字,主要是让开发人员知道这里应该放些什么内容。

水平渐变

{
  background-image: linear-gradient(left, red 100px, yellow 200px);
}

左上角渐变

{
  background-image:linear-gradient(left top, red 100px, yellow 200px);
}

本文参与 腾讯云自媒体分享计划,分享自作者个人站点/博客。
原始发表:2018年8月6日,如有侵权请联系 cloudcommunity@tencent.com 删除

本文分享自 作者个人站点/博客 前往查看

如有侵权,请联系 cloudcommunity@tencent.com 删除。

本文参与 腾讯云自媒体分享计划  ,欢迎热爱写作的你一起参与!

评论
登录后参与评论
0 条评论
热度
最新
推荐阅读
目录
  • 前言
  • img
  • background-img
  • 拓展-CSS渐变
    • 水平渐变
      • 左上角渐变
      领券
      问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档