Значение звездочек (*) между селекторами CSS

Мой вопрос касается знака звездочки между селекторами 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 *. Кто-нибудь может объяснить, как это происходит? Заранее спасибо.

Связанный: stackoverflow.com/questions/4910077/…

Nisarg 30.08.2018 12:24

@NisargShah не имеет отношения к этому вопросу. мой вопрос касается * между элементами, а не после элемента, и для выбора всех элементов после этого.

bahman parsamanesh 30.08.2018 12:27
Улучшение производительности загрузки с помощью Google Tag Manager и атрибута Defer
Улучшение производительности загрузки с помощью Google Tag Manager и атрибута Defer
В настоящее время производительность загрузки веб-сайта имеет решающее значение не только для удобства пользователей, но и для ранжирования в...
Введение в CSS
Введение в CSS
CSS является неотъемлемой частью трех основных составляющих front-end веб-разработки.
Как выровнять Div по центру?
Как выровнять Div по центру?
Чтобы выровнять элемент <div>по горизонтали и вертикали с помощью CSS, можно использовать комбинацию свойств и значений CSS. Вот несколько методов,...
Навигация по приложениям React: Исчерпывающее руководство по React Router
Навигация по приложениям React: Исчерпывающее руководство по React Router
React Router стала незаменимой библиотекой для создания одностраничных приложений с навигацией в React. В этой статье блога мы подробно рассмотрим...
Система управления парковками с использованием HTML, CSS и JavaScript
Система управления парковками с использованием HTML, CSS и JavaScript
Веб-сайт по управлению парковками был создан с использованием HTML, CSS и JavaScript. Это простой сайт, ничего вычурного. Основная цель -...
Toor - Ангулярный шаблон для бронирования путешествий
Toor - Ангулярный шаблон для бронирования путешествий
Toor - Travel Booking Angular Template один из лучших Travel & Tour booking template in the world. 30+ валидированных HTML5 страниц, которые помогут...
0
2
223
1

Ответы 1

* - это универсальный селектор. Соответствует любому элементу.

Он применяется вместе с потомок комбинатор.

Итак, ul * li означает «li, который является потомком любого элемента, который является потомком ul». Или, другими словами, «li, который является потомком ul, но не потомком ul, которому соответствует часть ul селектора».

Спасибо за ответ, так что ul * li представляет внучку ul, ul * * * li представляет внучку ul и так далее.

bahman parsamanesh 30.08.2018 12:42

"представляет внука ul" - Нет. Это комбинатор потомков, а не комбинатор потомков. Это мог быть внук, правнук и т. д.

Quentin 30.08.2018 12:56

Другие вопросы по теме