CSS gelişmeye, JavaScript'ten rol çalmaya devam ediyor. CSS'te attr() fonksiyonu, eskiden her zaman bir string döndürdüğü için, sadece content özelliğinde veya bazı özel metin efektlerinde kullanılabiliyordu.
div::after {
content: attr(data-title);
}
Örneğin, data-number="10" gibi bir değer tanımlasanız bile, CSS içinde bu değeri gerçek bir sayı olarak kullanamazsınız. Aynı şekilde, data-size="3rem" gibi bir değer de CSS tarafından gerçek bir uzunluk birimi olarak algılanmazdı.
Artık bu mümkün. Tek yapmanız gereken, hangi türde bir değer kullanacağınızı belirtmek.
attr(<attr-name> <attr-type>? , <fallback-value>?)
fallback-value değeri, özelliğin değeri yoksa kullanılacak olan değerdir, zorunlu alan değil.
div {
font-size: attr(data-font-size type(<length>));
grid-column-start: attr(data-column-start type(<integer>));
/* data-color özelliği yoksa, black değerini alır. */
color: attr(data-color type(<color>), black);
}
Geçerli Türler
<angle>
<color>
<custom-ident>
<image>
<integer>
<length>
<length-percentage>
<number>
<percentage>
<resolution>
<string>
<time>
<transform-function>
<url>
Kullanım Örneği
<div data-rotation="-3"> -3 derece çevrildim</div>
<div data-rotation="2">ve ben 2 derece</div>
<div>ben ise 1.5 derecelik yedek değeri kullanıyorum</div>
div {
width: fit-content;
transform-origin: 50% 50%;
rotate: attr(data-rotation deg, 1.5deg);
}
Misal buradaki kodda CSS rotate özelliğini attr()
fonksiyonu ile kullanıyoruz. data-rotation
özelliği yoksa, varsayılan olarak 1.5deg
değeri kullanılacak.
Çıktısı şu şekilde görünecek:
CodePen kurucu ortağı Chris Coyier'ın konu ile ilgili bir kaç örneği mevcut.
attr() özelliği ile çeşitli örnekleri inceleyebilirsiniz:
- grid kolon örneği için attr() with columns
- renkler ile kullanımı için attr() for colors
- font-size ile kullanımı için attr() for font-size
CSS attr() desteği
Şimdilik sadece Chrome ve Chromium tabanlı olan Edge tarayıcılarında destekleniyor.
Mobil tarayıcılar içinde durum aynı, sadece Android Browser ve Android Chrome'da destekleniyor.
Yazının kapak görseli yapay zeka tarafından üretilmiştir. 🤖