Az attr() függvény használatával HTML elem attribútumok értékét kérhetjük le és jeleníthetjük meg CSS-ből a ::before
, ::after
pseudo-elemek segítségével.
A függvény használatakor mindig az éppen kijelölt elem tulajdonságaihoz férünk hozzá. A lekért érték lehet hagyományos tulajdonság, mint a href, vagy egy egyedi data-*
attribútum is.
Jelenleg csak arra használható, hogy pseudo-elemekben jelenítsük meg az adatokat. Két darab hétköznapi használati eset van, amit érdemes megemlíteni.
URL megjelenítése nyomtatási nézetben
Ha valamit nyomtatni akarsz egy weboldalról a hivatkozások problémát okozhatnak. Alapvetően papíron maximum csak egy aláhúzást fogjunk látni, ahol a link van. Hogy mi az értéke az jó kérdés lesz, pedig hasznos lehet.
@media print {
a[href]::after {
content: " (" attr(href) ")";
}
}
Ezt a problémát az attr()
függvénnyel egyszerűen orvosolhatjuk. Hogy használhatóbb legyen a nyomtatási nézet, annyit kell tennünk csupán, hogy az <a>
tagek href értékét kiíratjuk a ::after
elemre.
Egyszerű tooltip megoldás
Ha egy nagyon egyszerű tooltip megoldást szeretnénk, csak CSS segítségével, akkor az attr()
függvény megint csak a segítségedre lehet. A használatával könnyedén jeleníthetünk meg hover állapotra plusz információt szintén a pseudo-elemekben.
See the Pen Pure CSS Tooltip by Adam Laki (@adamlaki) on CodePen.
Értelemszerűen ez egy nagyon egyszerű megoldás, sokat ne várjunk tőle, bizonyos szituációkban hasznos lehet.
Az attr() függvény jövője
Az új CSS specifikáció szerint az attr()
már többet tud, azonban ennek a támogatása nem túl nagy, mivel még nem ajánlás.
attr( <attr-name> <type-or-unit>? [, <attr-fallback> ]? )
Az első paraméter a név, a második az egység, ami azt jelenti, hogy különböző értékeket kaphatunk vissza, mint a szín, hosszúság, számok. Ez azzal együtt lesz hasznos, hogy minden CSS tulajdonságon használhatjuk majd (tehát egy szöveg szín értéket lekérhetünk HTML-ből) nem csak a ::before
és ::after
elemen.
További információért az attr() függvényről kérlek keresd fel az MDN oldalát!