Я хочу настроить таргетинг на все теги h на странице. Я знаю, ты можешь сделать это таким образом ...
h1,
h2,
h3,
h4,
h5,
h6 {
font: 32px/42px trajan-pro-1,trajan-pro-2;
}
но есть ли более эффективный способ сделать это с помощью расширенных селекторов CSS? например что-то вроде:
[att^=h] {
font: 32px/42px trajan-pro-1,trajan-pro-2;
}
(но, очевидно, это не работает)
css
css-selectors
SparrwHawk
источник
источник
h1 a:hover, h2 a:hover, h3 a:hover, h4 a:hover, ...
Ответы:
Нет, в этом случае вам нужен список через запятую.
источник
h1, h2, h3 {}
.Это не базовый CSS, но если вы используете LESS ( http://lesscss.org ), вы можете сделать это с помощью рекурсии:
Sass ( http://sass-lang.com ) позволит вам управлять этим, но не разрешит рекурсию; у них есть
@for
синтаксис для этих случаев:Если вы не используете динамический язык, который компилируется в CSS, такой как LESS или Sass, вам обязательно нужно проверить один из этих вариантов. Они могут действительно упростить и сделать вашу разработку CSS более динамичной.
источник
"can" != "should"
. Несмотря на это, параметры Sass / LESS дают вам возможность расширения, чего нет у ванильного CSS. Придумай что-нибудь подобноеfont-size: (48px / @index)
.scss/sass
в свой проект, но хотят генерироватьcss
с ними,scss/sass
они могут использовать этот онлайн-инструмент под названием sassmeisterЕсли вы используете SASS, вы также можете использовать этот миксин:
Используйте это так:
Редактировать: Мой личный любимый способ сделать это, по желанию расширить селектор заполнителя на каждом из элементов заголовка.
Затем я могу настроить таргетинг на все заголовки так же, как на любой отдельный класс, например:
источник
!optional
флага на расширении хотя? И, похоже, ничего не могу найти в Google ...SCSS + Compass делает это совсем несложно, поскольку речь идет о препроцессорах.
Вы можете узнать обо всех вспомогательных селекторах Compass здесь :
источник
Стилус «ы селектор интерполяции
источник
Селектором jQuery для всех тегов h (h1, h2 и т. Д.) Является «: header». Например, если вы хотите сделать все теги h красного цвета с помощью jQuery, используйте:
источник
$('.my_div :header').css("color","red")
?Чтобы справиться с этим с помощью ванильного CSS, ищите шаблоны в предках
h1..h6
элементов:Если вы сможете определить шаблоны, вы сможете написать селектор, который нацеливается на то, что вы хотите. Учитывая приведенный выше пример, все
h1..h6
элементы могут быть нацелены путем объединения псевдоклассов:first-child
и:not
CSS3, доступных во всех современных браузерах, например:В будущем усовершенствованные селекторы псевдоклассов, такие как
:has()
и последующие одноуровневые комбинаторы (~
), обеспечат еще больший контроль, так как веб-стандарты со временем продолжают развиваться.источник
Вы также можете использовать PostCSS и плагин пользовательских селекторов
Вывод:
источник
Вы можете .class все заголовки в вашем документе, если вы хотите нацелить их с помощью одного селектора, следующим образом:
и в css
Я не говорю, что это всегда лучшая практика, но она может быть полезной, а для ориентации на синтаксис - проще во многих отношениях,
так что если вы предоставите всем h1-h6 один и тот же класс .heading в html, то вы можете изменить их для любых документов html, которые используют этот лист css.
верх, более глобальный контроль по сравнению с "разделом статьи h1 и т. д.}",
С другой стороны, вместо того, чтобы вызывать все селекторы на месте в css, у вас будет намного больше возможностей ввода html, но я считаю, что наличие класса в html для нацеливания на все заголовки может быть полезным, просто следите за приоритетом в CSS, потому что конфликты могут возникнуть из
источник
Новый
:is()
псевдокласс CSS может сделать это в одном селекторе:источник