Нащадок - CSS-хитрощі

Anonim

Селектор нащадків у CSS - це будь-який селектор з пробілом між двома селекторами без комбінатора. Ось кілька прикладів:

ul li ( ) header h2 ( ) footer a ( ) .module div ( ) #info-toggle span ( ) div dl dt a ( )

Візьмемо ul li ( )для прикладу. Це означає "будь-який елемент списку, який є нащадком невпорядкованого списку".

Нащадок означає будь-де, вкладене в нього в дерево DOM. Може бути прямою дитиною, може бути глибиною п’ять рівнів, це все ще нащадок. Це відрізняється від дочірнього комбінатора (>), який вимагає, щоб елемент був наступним вкладеним рівнем вниз.

Для ілюстрації div span ( )буде відповідати:

 I will match
  • I will match too

Вам, мабуть, не слід над цим турбуватися, але спадковий селектор є досить «дорогим» - тобто важким / повільним для рендеринга двигунів, щоб розібратися та робити щось інше. MDN:

Селектор нащадків - найдорожчий селектор у CSS. Це жахливо дорого, особливо якщо селектор входить до категорії тегів або універсальної категорії.

Але лише порівняно з іншими селекторами. Це все ще надзвичайно швидко, і ви, мабуть, ніколи цього не помітите, якщо не зійдете з розуму.

Підтримка браузера

Chrome Сафарі Firefox Опера IE Android iOS
Будь-який Будь-який Будь-який Будь-який Будь-який Будь-який Будь-який