Опубликовано: 15 января 2025 г.
Переработанная функция attr()
С помощью CSS attr()
вы можете использовать значение атрибута HTML в своем CSS. До сих пор attr()
работал только в свойстве content
псевдоэлементов и мог анализировать значения только в CSS <string>
.
Переработанная функция attr()
, доступная в Chrome 133, открывает больше возможностей. Теперь вы можете использовать attr()
с любым свойством CSS, включая пользовательские свойства, и он может анализировать значения в типы данных, отличные от <string>
.
Примеры
В следующем примере значение свойства color
для div
использует значение атрибута data-color
. Значение этого атрибута преобразуется в <color>
с помощью attr()
и type()
. Резервное значение установлено на red
.
<div data-foo="blue">test</div>
div {
color: attr(data-foo type(<color>), red);
}
В следующем примере свойство view-transition-name
определяется атрибутом id
элемента. Атрибут анализируется в <custom-ident>
, который является обязательным типом для view-transition-name
. Без attr()
вам приходилось объявлять view-transition-name
для каждой карты, тогда как теперь вы можете сделать это за один раз.
<div class="cards">
<div class="card" id="card-1"></div>
<div class="card" id="card-2"></div>
<div class="card" id="card-3"></div>
<div class="card" id="card-4"></div>
</div>
.card {
view-transition-name: attr(id type(<custom-ident>), none); /* card-1, card-2, card-3, etc. */
view-transition-class: card;
}
Вы также можете преобразовать значения в длину, задав тип для любого идентификатора, который соответствует единице измерения CSS или символу %
. В следующем примере атрибут data-size
преобразуется в значение пикселя.
<div data-size="10">test</div>
div {
font-size: attr(data-size px);
}
При использовании attr()
без какого-либо типа он анализирует атрибут в строку CSS, что аналогично предыдущему поведению.
Узнать больше
Дополнительную информацию об attr()
можно найти в спецификации и на MDN .