CSS attr() krijgt een upgrade

Gepubliceerd: 15 januari 2025

De opnieuw ontworpen attr() functie

Met CSS attr() kunt u de waarde van een HTML-attribuut in uw CSS gebruiken. Tot nu toe werkte attr() alleen binnen de content eigenschap van pseudo-elementen en kon waarden alleen parseren in een CSS <string> .

De opnieuw ontworpen functie attr() , beschikbaar vanaf Chrome 133, ontgrendelt meer mogelijkheden. U kunt nu attr() gebruiken met elke CSS-eigenschap, inclusief aangepaste eigenschappen, en het kan waarden ontleden in andere gegevenstypen dan <string> .

Voorbeelden

In het volgende voorbeeld gebruikt de waarde van de eigenschap color voor div de waarde van het attribuut data-color . Deze attribuutwaarde wordt geparseerd in een <color> met behulp van attr() en type() . De fallback-waarde is ingesteld op red .

<div data-foo="blue">test</div>
div {
  color: attr(data-foo type(<color>), red);
}

In het volgende voorbeeld wordt de eigenschap view-transition-name bepaald door het id -attribuut van het element. Het kenmerk wordt geparseerd in een <custom-ident> , wat het vereiste type is voor view-transition-name . Zonder attr() moest je voor elke kaart een view-transition-name declareren, terwijl je dat nu in één keer kunt doen.

<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;
}

U kunt waarden ook in een lengte ontleden door het type in te stellen op een ID die overeenkomt met een CSS-dimensie-eenheid of het % -teken. In het volgende voorbeeld wordt het data-size attribuut geparseerd in een pixelwaarde.

<div data-size="10">test</div>
div {
  font-size: attr(data-size px);
}

Wanneer attr() zonder enig type wordt gebruikt, wordt het attribuut geparseerd naar een CSS-tekenreeks, wat hetzelfde is als het vorige gedrag.

Meer informatie

Vind meer informatie over attr() in de specificatie en op MDN .