在HTML中开发。。。没有类/ID

在HTML中开发。。。没有类/ID,html,css,class,css-selectors,Html,Css,Class,Css Selectors,我刚刚发现了伪类的利用率(:n个孩子等等) 关于这一点,我有一个疑问:使用那些伪类(允许在HTML代码中抑制类)是一个好处吗?在搜索引擎优化、性能、W3C等方面 下面是一个示例(只是一个测试,因此没有响应,图像也没有加载,但我们不关心): 实习教授 感谢您帮助澄清此主题类的主要用途是识别站点中的某些部分,这些部分在这里和那里重复,并且应该始终保持相同的样式。比如,一个日期小部件附加到列表中的每个博客帖子。或者是一个随处可见的社交媒体小部件 <div class="poste

我刚刚发现了伪类的利用率(:n个孩子等等)

关于这一点,我有一个疑问:使用那些伪类(允许在HTML代码中抑制类)是一个好处吗?在搜索引擎优化、性能、W3C等方面

下面是一个示例(只是一个测试,因此没有响应,图像也没有加载,但我们不关心):


实习教授


感谢您帮助澄清此主题

类的主要用途是识别站点中的某些部分,这些部分在这里和那里重复,并且应该始终保持相同的样式。比如,一个日期小部件附加到列表中的每个博客帖子。或者是一个随处可见的社交媒体小部件

<div class="posted-date">
    <span class="month">Sep</span>
    <span class="day">16</span>
</div>
当你移动一个元素时会发生什么?现在你也需要调整你的CSS。或者,如果同一元素位于页面的不同位置,并且每次都应该接收相同的样式?您将需要指定许多选择器,并且再次在每次将项目放置到新位置时调整CSS

如果您不需要类,因为您只需通过元素或其父元素的标记名或诸如此类的名称就可以很好地识别元素,或者您的选择器已经很好地定义了,并且如果您稍微移动一些东西就不会轻易断开,那么绝对不需要添加多余的类。然而,一般来说,将样式绑定到HTML的结构会产生紧密耦合,这通常是个坏主意


编写可维护的CSS是一门艺术。你需要为你的项目找到合适的平衡点。越复杂,您需要开发的策略就越精细,以保持HTML和CSS的正常。在简单的项目上过火上课可能不值得。不惜一切代价避免在复杂的项目上上课,你最终会把自己画进一个无法维护的角落。

SEO:谁知道,问问谷歌吧。性能:测量它。W3C:这到底是什么意思?我建议你试着只使用
:n个child
选择器来编写一个具有中等复杂CSS的中等复杂网站,诸如此类……你的CSS将是一团乱麻!始终使用
:n个child
选择器设置样式完全是个坏主意。这样,您就不能在一个类中对相似的项进行分组并对它们进行唯一的样式设置。因此,您的css大小将显著增加。类使您的代码更具声明性。找到一个有效的类命名系统并坚持使用它。我看不出在任何方面有任何优势。您可能会放弃一些真正强大的功能,而没有任何积极的副作用。“几乎总是一个坏主意”不同意,在许多情况下,您确实希望在特定位置设置元素的样式(即使它们不是第一个或最后一个),但是,将整个样式表与HTML紧密耦合的一般想法肯定是不可行的。即使在这种情况下,我也可能宁愿向某个父元素添加一个额外的类,而不是为特定位置编写选择器。不过,显然,总是会有基于位置和基于身份的风格混合。您只想让基于位置的选择器尽可能少,并且尽可能短<代码>正文>标题>导航>ul>li>span显然过于具体和不灵活。拥有一个仅用于标记元素位置的类或id是没有意义的。事实上,这就是为什么它应该是一个描述性修饰符的原因。元素1和元素2(或其父元素)有什么不同之处,使您希望对其应用不同的样式?将其描述为一个类<代码>.primary,
.secondary
,或者类似的东西。我同意。我还倾向于更加强调保持标记在语义上的意义,并围绕它设计CSS,只在绝对必要的地方添加启示。顺便说一句,我认为将CSS与HTML分离的想法有点奇怪(尽管松散耦合是另一回事)。每个人编写HTML的方式都不一样——几乎不可能设计一个样式表来为不同的人或程序编写的各种文档设置样式。然而,有些人似乎不这么认为。
<div class="posted-date">
    <span class="month">Sep</span>
    <span class="day">16</span>
</div>
<posted-date><month>Sep</month><day>16</day></posted-date>
header > nav ul li:nth-child(2) span { /* the date widget /* }