Css 为什么是第1章而不是第1章?

Css 为什么是第1章而不是第1章?,css,css-selectors,Css,Css Selectors,id属性的值应该是唯一的。在#id#u name前面使用元素名的CSS选择器没有任何意义,因为没有两个元素可以具有相同的id值。W3C网站意味着两个不同的元素可以具有相同的id,并且可以同时位于同一文档中。理论上,h1#chapter1有一个特殊情况,其中有一个id=chapter1的不同元素,但在这种情况下,同一文档中无论如何都不可能有id=chapter1的h1。例如,两个不同网站上的两个不同文档对不同元素使用相同的id,并且两个文档使用相同的样式表。这种特殊情况必须在任何规范中加以描述,而

id属性的值应该是唯一的。在#id#u name前面使用元素名的CSS选择器没有任何意义,因为没有两个元素可以具有相同的id值。W3C网站意味着两个不同的元素可以具有相同的id,并且可以同时位于同一文档中。理论上,h1#chapter1有一个特殊情况,其中有一个id=chapter1的不同元素,但在这种情况下,同一文档中无论如何都不可能有id=chapter1的h1。例如,两个不同网站上的两个不同文档对不同元素使用相同的id,并且两个文档使用相同的样式表。这种特殊情况必须在任何规范中加以描述,而不是留给推测

本节选自


以下ID选择器表示其ID类型属性值为“chapter1”的h1元素: h1#第1章

以下ID选择器表示ID类型属性值为“chapter1”的任何元素: #第一章

以下选择器表示ID类型属性值为“z98y”的任何元素。
*#z98y

这只是一个示例,展示了如何编写选择器。它还显示了一些额外的特异性。此外,这适用于客户端脚本可能将ID移动到所需元素以外的元素的情况,因此作为选择器一部分的元素有助于防止意外的样式应用。

如果在CSS中按原样定义
\chapter1
,则该页面上的任何元素都可以使用该选择器。如果将其定义为
h1#chapter1
,则只有h1元素可以使用该选择器。因此,是的,不管怎样,每页只能使用一次。但是,预先添加元素名可以增加代码的特殊性

例如:

h1#chapter1 {
    color: red;
}

只有h1可以使用此ID。因此,如果您团队中的其他人尝试编写此HTML:

某些文本,则不会应用此样式。通过这种方式编写CSS,您可以确保只对要设置样式的元素设置样式。

Shaan是正确的。虽然,一个ID只能使用一次,所以在这种情况下h1前缀是多余的。@Charlie Yup,一个ID只能使用一次,但h1不一定是多余的。如果您正在与团队合作,那么将其定义为这样会特别方便,因为这样可以防止人们使用ID来设置不应该使用该ID或以那种方式设置样式的元素的样式。非常小的情况下是的,但从一致性的角度来看是有意义的!有道理。感谢您的详细介绍@查理,没问题!您描述的“特殊情况”总是发生在不符合要求的文档中,就像HTML的情况一样,不符合要求的页面可以无错误地呈现。当然,您可以使用id仅匹配第一个此类元素的选择器,但浏览器中实现选择器的方式根本无法实现这一点。看见