我可以很好地理解这个Selectutorial基于后代选择器的基于元素/标签的内容,它们的工作方式和原因以及用途。
但后来我遇到了某些网站,这些网站定义了一个锚<a>
的类名,它由几个以空格分隔的名称组成,例如。
<a class="samename nav_item samename" href="/messages/?refid=7"> Text </a>
然后我发现这些也被称为“descendant selectors” - 或称为descendant combinators?
这是我不理解的地方:
samename
后代选择器?我非常感谢任何有关第二种类型的地方的提示或指示。
编辑:以下回复有助于将订单纳入事项,特别是在正确的术语方面。到目前为止,我将尝试总结一下我的理解 - 首先尝试以相应的方式回答上述问题,然后列出一些见解,希望它可以帮助像我这样的未来的css-laymen:
multiple class names assigned to the same tag
。见解(如果发现错误,请更正):
.classname
表示法。这个
有些人称之为符号
“the class selector”和这个
是我的困惑所源自的地方。它仅仅意味着它可以用于选择任何具有属性类的HTML元素。#elementid
符号。这是个
完全不同的主题但从那时起
某些人提到了这种表示法
作为“the id selector”它是相当的
可能这可能是一个来源
混乱也是如此,所以这是短暂的
这里提到。答案 0 :(得分:5)
只有一个CSS后代选择器,即空格字符:
E F /* Selects any F that descends from (or is contained by) an E */
空格分隔的类名只是在单个HTML class
属性中由空格分隔的多个类。 class
属性不是选择器,实际上甚至不是CSS的一部分。
然而,在某个相关的注释中,每个元素列出多个类的一个用法是,您可以链接类选择器,这样只有所有所列类的元素才匹配,而不是那些有一个或多个类。例如:
.samename.nav_item /* Selects only elements that have both classes */
至于为什么在你给定的HTML中重复samename
,我不知道。它与只有一个samename
类相同。
答案 1 :(得分:4)
在你的例子中,a标签实际上有几个不同的类(由于某种原因,其中一个列出了两次)。
在CSS代码中,我们使用空格来分隔后代选择器,但在HTML中它只是让我们将几个类放在同一组括号中。