• 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属性的值)

    原文链接

  • 相关阅读:
    asp.net中3个常用的功能,直接上代码
    看WEB 2.0实战书中的部分技术资料 引用 很随笔,很杂乱
    Building a Web 2.0 Portal with ASP.NET 3.5(DropThings实例教学)
    如何防治猪流感!猪流感!?会像SARS那样爆发吗?我们能作的就是预防。
    招聘!北京 DNN程序员 5K7K
    国外的机器人爱好者使用C#等研发的一种家庭灭火机器人
    OLAP与OLTP的区别 及 什么是数据仓库
    动态绑定数据源的ReportViewer终于搞定了
    牛奶再次出事?!算了,我还是自己榨豆浆吧。中国人喝豆浆!
    c#遍历HashTable
  • 原文地址:https://www.cnblogs.com/OpenCoder/p/10493444.html
Copyright © 2020-2023  润新知