html - css选择器之间星号(*)的含义

标签 html css css-selectors

<分区>

我的问题是关于 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>

请考虑我的问题是关于两个元素之间的星号,当用作 选择器 * 时它的行为是不同的。 谁能解释这是怎么发生的? 提前致谢。

最佳答案

*universal selector .它匹配任何元素。

它与 descendant combinator 一起应用.

因此 ul * li 表示“li 是任何元素的后代,而该元素是 ul 的后代”。或者,换句话说,“liul 的后代,但不是 ul 的子代,ul 选择器的一部分匹配。

关于html - css选择器之间星号(*)的含义,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/52094687/

上一篇:html - 在 FlexBox 中使用 vh 和 vw 的 CSS 问题

下一篇:css - Sass 循环 @mixin 和 @include

相关文章:

html - 如何更改文本大小增加的文本框大小(高度)?

html - 如何将段落字体更改为特定字体 CSS

html - DIV内容不溢出

使用 :after only shows when on hover 的 CSS 背景图片

javascript - Jquery 多步双击

html - Rails - 如何确保我的样式优先于 Bootstrap?

c# - 单击表单按钮时,Asp-Page-Handler 不会触发 Razor 模型中的方法

html - 显示 : table-column disappears entirely in IE8 & IE9 的字段集

css - 以不同颜色显示 div 的第一个元素

html - 我怎样才能选择除特定元素之外的所有元素?