【发布时间】:2011-05-25 21:30:11
【问题描述】:
从这个Selectutorial 我可以很好地理解什么是基于元素/标签的后代选择器,它们如何工作以及为什么工作以及用于什么目的。
但后来我遇到了某些网站,它们为锚点 <a> 定义了一个类名,该类名由多个用空格分隔的名称组成,例如
<a class="samename nav_item samename" href="/messages/?refid=7"> Text </a>
后来我发现这些也叫“descendant selectors”——还是叫descendant combinators?
这是我停止理解的地方:
- 是“后裔”的第二类 选择器”是否与第一种类型相同?
- 第 2 类“后裔 选择器“有一个different name, 这可以帮助我区分它 从第一种类型参考时 是吗?
- 第二类的目的是什么 “后代选择器”?
- 为什么要在这样的地方重复
samename后代选择器?
任何提示或指向我可以了解更多关于这种第二种类型的地方的提示或指针将不胜感激。
编辑:下面的回复有助于整理事情,尤其是在适当的术语方面。我将尝试总结我目前的理解——首先尝试以各自的方式回答上述问题,然后列出一些见解,希望它可以帮助像我这样的未来 css-laymen:
- 第二类不是“后裔” 选择器”,所以它不能 可能与第一个相同 输入。
- 第二种类型的名称,现在,
是
multiple class names assigned to the same tag。 - 为每个元素分配多个类的一种用途是,然后可以链接类选择器,以便仅匹配具有列出的所有类的元素,而不匹配具有一个或更少类的元素。
- 这很可能是一个编程错误/错误/错误(尽管我在一个非常显眼的网站上找到了它)。
见解(如果发现错误,请更正):
- 尽管写了什么 w3schools,一个类(名称)是 不是选择器!选择器只能是 HTML 元素。
- 但是,CSS rule 可以参考
到一个 HTML 元素(或一组
HTML 元素)按类名,使用
.classname表示法。这 符号被一些人称为 “the class selector”和这个 是我困惑的根源。它仅仅意味着它可以用来选择任何具有 attribute 类的 HTML 元素。 - CSS 规则也可以引用 HTML
元素(或一组 HTML
元素)按元素 id,使用
#elementid符号。这是个 完全不同的主题,但因为 这个符号被一些人引用 作为“the id selector” 这可能是一个来源 也很混乱,所以很简短 这里提到了。 - 在 HTML 中,“类”是一个属性。在 CSS,它是一个“selector aggregator”, 用于选择任何 HTML 元素 有那个类属性。
- 到目前为止,最好的 CSS 教程是 Selectutorial。
【问题讨论】:
-
嗯,据我所知,那些不被称为“后代选择器”......
-
关于你的编辑,属性选择器(我看到你做了一个链接)与后代组合器完全不同。
-
@BoltClock 感谢一百万和更多 ++ 用于更正术语。我刚刚从你那里得知这些被称为
descendant combinators,而不是“后代选择器”。另外,您能否推荐一个更好的学习 CSS 的资源,它不是正式规范?光看grammar就头疼... -
我的大部分 CSS 学习来自于阅读网络上的杂项文章和大量实践 :)
-
只是为了澄清您的观点 #3 - 在 CSS 中,您可以参考以下任何内容(并使用其中的几个更具体): HTML 元素(例如 p、a 等) 没有额外的符号、类(前面有句点)和 ID(前面有井号)
标签: html css css-selectors