网页布局图片背景与img标签使用

2016/12/29 8:39:45   阅读:1758    发布者:1758

个人建议同时写背景图片和 img 标签,兼顾SEO 的同时在高对比度模式下
也可以正常显示图片。具体代码晚些补上…

使用<img> 还有一个好处是,用户可以很方便的右键保存 Logo 或者复制 Logo 图片的链接。

<h1 class="logo"> <!-- 注意 a 标签不要加 title,会造成部分读屏软件重复读取 --> 
<a tabindex="2" accesskey="1" href="#">
<img src="http://www.yanet.cn/images/logo-w3c-screen-lg" alt="W3C">
<span class="alt-logo">W3C</span> </a> </h1>

.logo a { background: url(http://www.yanet.cn/images/logo-w3c-screen-lg) no-repeat 0 0; 
display: block; width: 249px; height: 107px; position: relative; overflow: hidden;
margin: 10px auto; } .logo img { color: #fff; } .logo .alt-logo { position: absolute;
z-index: -1; left: 0; top: 0; right: 0; bottom: 0; padding-left: 22px; padding-top: 25px;
font-size: 50px; color: #fff; background-color: #075F9F; }

.alt-logo 的作用是当图片加载失败的时候可以显示一个替代文本,
如果只用兼容 IE8 以上,可以用 ::after 伪元素代替。

个人认为的css背景图与html插入img的区别

1.写在css里面的图片是以背景图形式存在的,而写在html里的img是以标签
形式存在的,在网页加载的过程中,以css背景图存在的图片会等到结构
加载完成(网页的内容全部显示以后)才开始加载,而html里的img标签是
网页结构(内容)的一部分会在加载结构的过程中加载。
 
2.通常是非内容的图片就写在css里面(用来修饰页面的元素),如果是内容性的图片就写在html里面,
打个比方,你要做一个有漂亮边框的相册。那么修饰边框的图片就写在css里面,
相框里面的内容照片就写在html里面。
 
3.图片做为背景,在图片没加载的时候或者加载失败的时候,不会有个图片的占位标记,不会出现红叉。