我的问题是关于CSS选择器之间的星号。看来星号可以通过两个元素之间的星号数目忽略选择器。
示例1:
ul * li {
color:red;
}
<ul>
<li>Item 1</li>
<li>
<ol>
<li>Sub-item 2</li>
<li>Sub-item 2</li>
<li>
<ul>
<li>Sub-item 3</li>
<li>
<ol>
<li>Sub-item 4</li>
<li>Sub-item 4</li>
</ol>
</li>
</ul>
</li>
</ol>
</li>
</ul>
示例2:
ul * * * li {
color:red;
}
<ul>
<li>Item 1</li>
<li>
<ol>
<li>Sub-item 2</li>
<li>Sub-item 2</li>
<li>
<ul>
<li>Sub-item 3</li>
<li>
<ol>
<li>Sub-item 4</li>
<li>Sub-item 4</li>
</ol>
</li>
</ul>
</li>
</ol>
</li>
</ul>
示例3:
ul * * * * * * * li {
color:red;
}
<ul>
<li>Item 1</li>
<li>
<ol>
<li>Sub-item 2</li>
<li>Sub-item 2</li>
<li>
<ul>
<li>Sub-item 3</li>
<li>
<ol>
<li>Sub-item 4</li>
<li>Sub-item 4</li>
</ol>
</li>
</ul>
</li>
</ol>
</li>
</ul>
请考虑我的问题是关于两个元素之间的星号,并且在用作selector *
时其行为是不同的。
谁能解释这是怎么发生的?
预先感谢。
答案 0 :(得分:1)
*
是universal selector。它匹配任何元素。
它与descendant combinator一起使用。
因此ul * li
的意思是“ li
是作为ul
的后代的任何元素的后代”。或者,换句话说,“ li
是ul
的后代,但不是选择器的ul
部分匹配的ul
的子代”。 / p>