1

我正在学习 smacss.com。乔纳森·斯努克 (Jonathan Snook) 在他的书中指出 (P. 14)

不必使用具有布局样式的元素选择器。

我在网上找不到他的声明:http: //smacss.com/book/type-layout

今天在 HTML5 中,我使用<header> <nav> <article> <footer>, ..... 而不是#header #nav #article #footer, .....

现在我很困惑。为什么我不应该使用带有布局样式的元素选择器?还是这些信息已经过时了?

4

1 回答 1

2

没有硬性规定。但是,如果您将article其用作选择器,那么您的 CSS 将与您的 HTML 紧密耦合,这在以后可能会成为问题。

例如,通过使用.articlethen 你可以拥有<div class="article">or<article class="article">并且它也可以工作。

假设您正在使用标签在电子商务系统中<article>标记产品,然后将<product>标签添加到 HTML5,您可能希望将所有 HTML 切换为使用新标签。但是,如果您的 CSS 使用元素选择器,您还需要更改 CSS 中的所有内容。如果product给元素添加类,并使用.product选择器,以后就不会出现这个问题了。

还有一个相反的问题,如果您将其他人的代码放入您的代码中,他们很有可能使用<article>标签,如果您使用元素选择器,您的 CSS 现在将应用于这些元素。通过使用类(尤其是命名空间类),您可以将事物分开。

也就是说,它更多的是关于一般指南而不是绝对指南。只要您仅将它们用于特定的选择器,例如<section>and <article>,就可以了。如果您将它们用于诸如此类的事情<span><div>则更有可能成为问题。

于 2014-10-08T14:47:16.680 回答