我被告知,以及阅读过,使用html中的style属性被认为是不好/粗糙/不良的做法。此外,所有特定于呈现的位应分离到css和其他适当的部分中。我试图理解为什么会这样。我可以理解为什么你可能希望保持HTML纯语义DOM,它描述了文档的结构,但对于实际页面来说,重要的是页面看起来正确并且功能适当。这种分离是否有更有说服力的原因?
关注点分离 这使得更换样式而不改变标记变得容易,反之亦然。此外,您可以让一个人处理CSS,另一个人处理内容。
不要重复自己 您可以将样式应用于多个元素,而无需一遍又一遍地重复它。较小的页面意味着使用更少的带宽更快的加载时间。此外,修改起来更容易,因为您可以在一个文件的一个地方进行更改,而不是在许多文件的许多地方进行更改。
可缓存性 如果您的站点的每个页面都使用相同的样式表,则浏览器可以下载一次并缓存它,而不是在每个单独页面的内容中下载样式。并且只要这些页面的内容不变,就无需重新下载。
多个版本 由于您只需要交换样式表文件即可更改整个站点的视觉布局和外观,因此很容易创建多个版本。例如,您可以创建一个白标版本的Web应用程序,供合作伙伴重新设计以匹配其品牌。请参见CSS Zen Garden,了解此方法的灵活性有多大。
从这段代码开始:
<ul>
<li style="color: blue;">One</li>
<li style="color: blue;">Two</li>
<li style="color: blue;">Three</li>
<li style="color: blue;">Four</li>
</ul>
假设今天你决定将链接颜色更改为红色。由于这些样式是内联的,因此您需要费力地遍历每个元素并更改style
属性。想象一下为10个,甚至20个HTML页面执行此操作,您就会发现这成为一个问题。
使用样式表可以将内容分离:
<ul>
<li>One</li>
<li>Two</li>
<li>Three</li>
<li>Four</li>
</ul>
从样式方面:
ul li {
color: blue;
}
blue
更改为red
,非常简单。ul li {
color: red;
}
如果您的选择器无法覆盖内联样式,您很快就会感到沮丧并采用!important
,请注意这种情况。
CSS应该作为另一个包含在HTML中的文件,因为如果您想更改包含在多个页面中的元素的一个样式,您只需从CSS更改一个样式,更改将应用于所有文件。如果您在HTML中使用样式,则需要逐个页面地更改样式。这是一种良好的模板构建实践。