• img图片加载出错处理


    img图片加载出错处理

    为了美观当网页图片不存在时不显示叉叉图片

    当在页面显示的时候,万一图片被移动了位置或者丢失的话,将会在页面显示一个带X的图片,很是影响用户的体验。即使使用alt属性给出了”图片XX”的提示信息,也起不了多大作用。
    其实,可以这样处理:当图片不存在的时候,会触发onerror事件,我们可以在该事件中做一下补救的工作,比如:

    1、让这个图片元素隐藏:

    <img src="图片的url地址" alt="图片XX" onerror="this.style.display='none'"/>

    2、用默认的图片替换:

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

    注意:如果使用不当,在IE内核的浏览器下会造成死循环。比如:当【默认图片的url地址】也加载不成功(比如网速比较慢的时候)或不存在的话,就会反复的加载,最后造成堆栈溢出错误。

    因此, 需要用下面两种方法解决:

    a、更改 onerror 代码为其它处理方式或者确保 onerror 中的默认图片足够小,并且存在。

    b、控制onerror事件只触发一次,需要增加这句话:this.onerror=null; 增加后如下:

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

    经测试,上面的方法在IE各个版本及谷歌、火狐浏览器中都支持

    img图片属性

    vertical-align用来设置垂直对齐方式,所有垂直对齐的元素都会影响行高

      值: baseline | sub | super | top | text-top | middle | bottom | text-bottom | <length> | <percentage> | inherit

      初始值: baseline

      应用于: 行内元素、替换元素、表单元格

      继承性: 无

      百分数: 相对于元素的行高line-height

      [注意]IE7-浏览器中vertical-align的百分比值不支持小数行高,且取baseline、middle、text-bottom等值时与标准浏览器在展示效果不一样,常用的解决办法是将行内元素设置display:inline-block 

    复制代码
    vertical-align:baseline(元素的基线与父元素的基线对齐)
    vertical-align:sub(降低元素的基线到父元素合适的下标位置)
    vertical-align:super(升高元素的基线到父元素合适的上标位置)
    vertical-align:bottom(把对齐的子元素的底端与行框底端对齐)
    vertical-align:text-bottom(把元素的底端与父元素内容区域的底端对齐)
    vertical-align:top(把对齐的子元素的顶端与行框顶端对齐)
    vertical-align:text-top(把元素的顶端与父元素内容区域的顶端对齐)
    vertical-align:middle(元素的中垂点与父元素的基线加1/2父元素中字母X的高度对齐)
    vertical-align:(+-n)px(元素相对于基线上下偏移npx)
    vertical-align:x%(相对于元素的line-height值)
    vertical-align:inherit(从父元素继承vertical-align属性的值)
  • 相关阅读:
    call、apply、bind函数的理解以及手写。
    父div里两个子div(inline-block),为什么两个子div中间会有小缝隙,如何解决?
    手写柯里化
    arguments的理解
    New
    BFC
    useCallBack和useMemo的用法
    观察者模式和发布订阅模式
    grid布局
    Android常见输入法的包名和主类名
  • 原文地址:https://www.cnblogs.com/LcxSummer/p/9626397.html
Copyright © 2020-2023  润新知