IMG
标签来显示图像比使用 CSS 的 background-image
更为适合?相反地又是什么情况?因素可能包括可访问性、浏览器支持、动态内容或任何类型的技术限制或可用性原则。
IMG
标签来显示图像比使用 CSS 的 background-image
更为适合?相反地又是什么情况?IMG
。 —JayTeeIMG
(带有alt
文本)。这样可以确保在所有用户代理中,包括屏幕阅读器,都能传达图像的含义。IMG
加上alt属性。—sanchothefatIMG
。IMG
。z-index
的IMG
可以拉伸背景图像以填充整个窗口。background-size
后不再适用;请参见下面的#6。img
而不是background-image
可以大大提高性能。background-image
。—JayTeebackground-image
,如CSS sprites。background-image
,如CSS sprites。background-size:cover
和background-image
来拉伸背景图片以填充整个窗口。<div class="my-css-page-styles" style="background-image:url(blah.png);"></div>
这样你就可以在CSS样式表中进行样式设置,但如果背景图片更多地涉及内容而非样式,则仍需从HTML端进行编辑。 - Jimbo Jonny<img>
,就 知道 会有一张图片出现。而如果看到<div>
, 而它包含的图片信息被埋藏在其他文件中,那似乎是一种效率低下的可理解性。只是随口想想,你是否仍然可以使用没有 src
属性的 <img>
标签,并通过 CSS 应用 background-image
- 这是否太过离谱? - Mike Bartlett对我而言,这是一个黑白分明的决定。如果图像是内容的一部分,例如标志、图表或人物(真实的人物,而不是库存照片中的人物),那么请使用 <img />
标签加上 alt 属性。对于其他所有情况,请使用 CSS 背景图像。
另一种使用 CSS 背景图像的情况是在替换文本时,例如段落/标题。
我很惊讶还没有人提到这个: CSS 过渡效果。
你可以通过 CSS 过渡效果实现一个 div
背景图片的动态过渡:
#some_div {
background-image:url(image_1.jpg);
-webkit-transition:background-image 0.5s;
/* Other vendor-prefixed transition properties */
transition:background-image 0.5s;
}
#some_div:hover {
background-image:url(image_2.jpg);
}
这将保存任何类型的JavaScript或jQuery动画来淡化<img/>
的src
。
有关过渡效果的更多信息,请访问MDN。
#some_div {过渡:不透明度0.5秒;}
#some_div:hover #top_img{不透明度:0;}
- warkentien2浏览器默认情况下并不总是打印背景图片;如果你希望网页能够被打印出来 :)
<div id="headerImage"></div>
...和CSS:
#headerImage {
width: 200px;
height: 100px;
background: url(Images/headerImage.png) no-repeat;
}
#headerImage {
width: 200px;
height: 100px;
background: url(../resources/images/headerImage.png) no-repeat;
}
<img>
标签的src
属性(假设您没有使用服务器端脚本语言或CMS自动化该过程)。有些答案在这里过于复杂化了情况。这是一个非常简单的情况。
每次您想放置图像时,只需回答以下问题:
这是内容的一部分还是设计的一部分?
如果您无法回答这个问题,那么您可能不知道自己在做什么或想要做什么!
此外,请不要考虑除了这两种技术之外的任何事情,只是因为您希望“打印友好”或者不是。同样,请不要使用CSS隐藏内容,以便从SEO的角度来看。如果您发现自己在CSS文件中管理您的内容,则会让自己处于劣势。这只是关于什么是内容或不是内容的一个琐碎的决定。其他方面应该被忽略。
我还想再补充两个观点:
img 标签可以用于 调整图片大小,例如如果原始图片为100像素乘以100像素,你想要它变成80像素乘以80像素,你可以设置 img 标签的 CSS 宽度和高度。通过背景图像我不知道有什么好方法来实现这个目标。注意:现在也可以使用 background-image 和 CSS3 属性 background-size
来实现这个功能。
使用 background-image 可以方便地进行 动态精灵图切换。例如如果你有一个按钮图片,并且希望在鼠标悬停在元素上时显示一个单独的图片,则可以使用包含正常和悬停状态精灵图的背景图像,并动态更改背景位置。
background-size: 80px 80px;
- Kareem