论坛首页 Web前端技术论坛

和小胖儿一起向<img>说再见.

浏览 15590 次
精华帖 (0) :: 良好帖 (0) :: 新手帖 (0) :: 隐藏帖 (0)
作者 正文
   发表时间:2007-09-06  
笨笨狗 写道
不是什么都适合用背景的,比如你的网站logo,按照语义来说,就应该是图片,用img。另外,img标签有alt属性,这对残疾人士,或者说屏幕阅读器来说是非常有帮助了,请问你用背景图片如何传递此类信息?毕竟浏览器不是唯一的用户。什么东西都要考虑周全,要是img如此鸡肋,w3c大概早就遗弃它了吧。


确实不是所有的img都是无用的.

至于你说的那个 img的alt的问题很好解决

如果确实需要alt属性,那么就不要用 span+ background-image 的方式来代替img

你可以使用 <input type="image" />来代替.

例如

<input type="image" class="iamImg" alt="辅助说明" src="blank.png"  disabled="disabled"/>


其中,blank.gif是一个固定的透明的图片.
样式如下
.iamImg {
background-image:url(./defaultskin/images/testimage.jpg);
border:none;
width:80px;
height:20px;
cursor: default;
}

笨笨狗可以试一试.

初看起来 <input type="image" class="iamImg" alt="辅助说明" src="blank.png"  disabled="disabled"/>

<img src="/webcontextpath/common/defaultskin/images/testimage.jpg" alt="辅助说明" class="iamImg"  />
麻烦,但实际上带来的好处也是同样明显的.

当然凡是都有利弊了.
0 请登录后投票
   发表时间:2007-09-06  
当然 核心思想不是 为了不用img 而是为了让src和页面脱离关系

所以你可以还用 img 然后将 src指向 固定的blank图片
img的具体内容还用 css制定

0 请登录后投票
   发表时间:2007-09-06  
更有意思的用法是把小图片集合在一个大图片里面,然后css里面指定background-image的poistion,显示不同的图片。

也是老方法了,大家不防试试,这样的话,一个系统换一个皮肤更简单。
0 请登录后投票
   发表时间:2007-09-07  
楼上说的有道理,貌似网易邮箱、网盘页面上用的图片就是用的这种方法。

将图片设置到CSS背景属性上,还可以减少网络带宽占用,对于一个图片来说,用CSS它只要向服务器请求一次就行了,而用img的话,每一个<img>标签就要请求一次,这在一个图片在一个页面上多次出现的时候是很浪费带宽的。
我们现在就在有意识地用CSS来显示图片。
0 请登录后投票
   发表时间:2007-09-09  
对于一个图片来说,用CSS它只要向服务器请求一次就行了,而用img的话,每一个<img>标签就要请求一次 ??

sure?以我的经历貌似不是这样的。
0 请登录后投票
   发表时间:2007-09-09  
恩 楼上说的对 即使提到css里 对图片的请求次数还是不会少的
否则客户端无论如何也弄不到那些图片啊 呵呵

但是 这里面请求的时机有所不同了.
用img标签, 是浏览器在解析页面时发出请求, 在css里,是浏览器在解析css文件时发出请求.
但是这个细微的差别对开发人员来说几乎没有影响.
0 请登录后投票
   发表时间:2007-09-09  
fins 写道
恩 楼上说的对 即使提到css里 对图片的请求次数还是不会少的
否则客户端无论如何也弄不到那些图片啊 呵呵

但是 这里面请求的时机有所不同了.
用img标签, 是浏览器在解析页面时发出请求, 在css里,是浏览器在解析css文件时发出请求.
但是这个细微的差别对开发人员来说几乎没有影响.
楼上两位可能误解人家说的请求一次的意思了。

当使用我说的方法的时候,很多图片坐在一起,然后用css指定显示位置,这样的话,很多图片由于做在了一个图片里面,多以请求一次(也就是下载一个图片)就OK了。

当然这里面的图片肯定是常用图片,几乎每个页面都用的,比如倒角,影子等图片。

EXT的图片就是这么处理的。
0 请登录后投票
   发表时间:2007-09-10  
客户端对一个CSS只会请求一次,而每遇到一个<img>标签就会请求一次,所以如果把图片做到CSS里,重复出现时只要向服务器请求一次就OK了。
例如,在一个数据列表里,可能经常需要出现删除、修改等按钮图片,我们以前都是直接用<img>标签,现在全换成用统一的CSS来实现,方便维护,也节省网络带宽,当然这点节约一般情况下可能感觉不出来,但在网络状况比较差的情况下就能看出效果了。
0 请登录后投票
   发表时间:2007-09-10  
hlxiong 写道
客户端对一个CSS只会请求一次,而每遇到一个<img>标签就会请求一次,所以如果把图片做到CSS里,重复出现时只要向服务器请求一次就OK了。

那css里引用的图片信息 是怎么传给客户端的呢??
你的意思是 图片文件的内容和css文件的内容一起传过去了 ??
0 请登录后投票
   发表时间:2007-09-10  
hlxiong 写道
客户端对一个CSS只会请求一次,而每遇到一个<img>标签就会请求一次,所以如果把图片做到CSS里,重复出现时只要向服务器请求一次就OK了。

好像不是这样吧。。请求完css后,css里面的img还是都要请求一次的。
0 请登录后投票
论坛首页 Web前端技术版

跳转论坛:
Global site tag (gtag.js) - Google Analytics