是否应该在CSS中定义所有表现形象?

时间:2010-06-16 10:26:08

标签: html css

我一直在学习(X)HTML& CSS最近,其中一个主要原则是HTML用于结构和CSS用于表示。

考虑到这一点,在我看来,大多数网站上的相当数量的图像仅用于呈现,因此应该在CSS中(使用div或span来将它们保存在HTML中) - 例如徽标,标题图片,背景。

然而,虽然我书中的例子在CSS中放了一些图像,但它们仍然经常出现在HTML中。 (我只是在谈论'演示'图像,而不是'结构'图像,它们是内容的关键部分,例如照片网站中的照片。)

所有这些图片都应该在CSS中吗?或者是否有技术或逻辑上的理由将它们保留在HTML中?

谢谢, 格兰特

6 个答案:

答案 0 :(得分:10)

如果图像是“内容”,则在报纸文章中说出编辑图像,然后使用img标签。如果它是你的UI,主题或皮肤或其他任何名称的一部分,那么是的把它放在CSS。

建议读数

  • 使用Web标准进行设计(Zeldman)
  • 防弹网页设计(Dan Cederholm)
  • CSS Mastery(Andy Clark,Andy Budd,Cameron Moll)

答案 1 :(得分:2)

将这些图像放入CSS中的一个原因可能是通过更改CSS来为同一网站上的不同浏览器提供服务:例如,如果您检测到移动/嵌入式/袖珍浏览器,则可以为它们提供相同的HTML但是使用不包含图像的CSS。

答案 2 :(得分:1)

如果可能,我把它们放到CSS中。一个原因是我认为他们属于你所提到的,另一个是使用精灵的可能性。这可以显着缩短页面的加载时间。

答案 3 :(得分:0)

根据HTML 4.01 / XHTML 1.0 DTD,需要img标记的src属性。这就是为什么它应该总是包含在HTML中。

您可以在CSS中指定它以用于浏览目的,但大多数情况下大多数图像都是静态的且不会发生变化,所以将它放在CSS中是一个不必要的步骤。

答案 4 :(得分:0)

嗯,这取决于。例如,如果要在鼠标悬停在图像上时执行某些效果,则它必须位于HTML中。当您将图像放在HTML中时,您可以比在CSS中更自由地定位它。此外,据我所知,CSS包含的图像不会被抓取(您可能有兴趣让搜索者抓取您公司的徽标)。

如果考虑可访问性,HTML嵌入图像可以包含alt和标题信息。因此,例如,当您将鼠标放在公司的徽标上时,如果您在img标记中嵌入了title =“motto”属性,则浏览器可以显示您公司的座右铭。你不能用CSS做到这一点。

此外,人们习惯于将图像放在HTML中而不是CSS中,并且行为很难改变。

总之,根据您的需求,CSS不够灵活,无法满足您的需求,您应该将图像放在HTML中。但如果CSS符合您对UI图像的需求,那么CSS就更好了。

答案 5 :(得分:0)

有时,使用CSS加载UI图像也会阻止用户在保存页面时将UI图像下载到其驱动器。

但当然还有其他方法可以保存它们,但只需添加一点。

浏览器倾向于将CSS优先于HTML,因此与HTML相比,通过CSS加载图像可能会快一些。