前言
大家可能都知道img
标签是怎么设置默认图片的,但是你知道background-img
是如何设置默认图片的嘛?
img
<img class="lazyload" src="data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAAAEAAAABCAYAAAAfFcSJAAAAAXNSR0IArs4c6QAAAARnQU1BAACxjwv8YQUAAAAJcEhZcwAADsQAAA7EAZUrDhsAAAANSURBVBhXYzh8+PB/AAffA0nNPuCLAAAAAElFTkSuQmCC" data-original="图片的url地址" alt="图片描述" ="this.src='默认图片的url地址'"/>
这里是应用了img标签的``事件,当加载失败就用默认图片地址。但是这里可能出现如果默认图片地址也加载不出来,或者失败,在IE内核的浏览器下就会反复加载,出现死循环,最后造成堆栈溢出错误。因此, 需要用下面两种方法解决:
- 更改 代码为其它处理方式或者确保 中的默认图片足够小,并且存在。
- 控制 事件只触发一次,需要增加这句话:this.=null; 增加后如下:
<img class="lazyload" src="data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAAAEAAAABCAYAAAAfFcSJAAAAAXNSR0IArs4c6QAAAARnQU1BAACxjwv8YQUAAAAJcEhZcwAADsQAAA7EAZUrDhsAAAANSURBVBhXYzh8+PB/AAffA0nNPuCLAAAAAElFTkSuQmCC" data-original="图片的url地址" alt="图片描述" ="this.src='默认图片的url地址';this.=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语法我们经常见到,可能有人看不懂具体的意思,其实上面的些符号含义与正则表达式有很多一致之处:
[]
在正则中表示一个字符类,这里,你可以理解为一个小单元。|
表示候选。也就是“或者”的意思,要么前面的,要么就后面的。?
为量词,表示0个或1个,言外之意就是,你可以不指定方向,直接渐变色走起。+
也是量词,表示1个或者更多个。因此,终止颜色是不可缺少的。例如:linear-gradient(red)是酱油命,白板。<>
中的是关键字,主要是让开发人员知道这里应该放些什么内容。
水平渐变
{
background-image: linear-gradient(left, red 100px, yellow 200px);
}
左上角渐变
{
background-image:linear-gradient(left top, red 100px, yellow 200px);
}
公告
以后每月5、15、25号更新原创文章,内容不限,喜欢小编的可以点击关注,也可在下方评论留言,你喜欢什么内容,小编根据大家喜欢的内容尝试更新
点击查看更多内容
4人点赞
评论
共同学习,写下你的评论
评论加载中...
作者其他优质文章
正在加载中
感谢您的支持,我会继续努力的~
扫码打赏,你说多少就多少
赞赏金额会直接到老师账户
支付方式
打开微信扫一扫,即可进行扫码打赏哦