CSS attr() получает обновление

Опубликовано: 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 .