CSS'deki öğeleri HTML5 veri özelliklerine (örneğin data-role
) göre seçmek mümkün müdür ?
CSS'deki öğeleri HTML5 veri özelliklerine (örneğin data-role
) göre seçmek mümkün müdür ?
Yanıtlar:
Bir öznitelik seçici kullanmak istiyorsanız , neden olmasın:
[data-role="page"] {
/* Styles */
}
Bağlandığım belgede ele alınan çeşitli senaryolar için kullanabileceğiniz çeşitli özellik seçicileri vardır. Özel veri özelliklerinin "yeni bir HTML5 özelliği" olmasına rağmen,
tarayıcılarda genellikle standart olmayan özellikleri destekleyen herhangi bir sorun yoktur, bu nedenle bunları özellik seçicilerle filtreleyebilmeniz gerekir; ve
CSS, seçici sözdizimini bozmadıkları sürece, ad boşluklu olmayan öznitelik adlarını önemsemediği için CSS doğrulaması konusunda da endişelenmenize gerek yoktur.
$("#element").data("field","value");
veri öznitelikleri değerini değiştirmez, yalnızca jQuery'nin DOM'un önbelleğe alınmış sürümünü değiştirir. Gerçek DOM özelliğini değiştirmek için kişinin kullanılması gerekir $("#element").attr("data-field","value");
. Orijinal yorumumu geçersiz yapıyorum.
Modern tarayıcılarda, içeriklerinden bağımsız olarak özellikleri seçmek de mümkündür
ile:
[data-my-attribute] {
/* Styles */
}
[anything] {
/* Styles */
}
Örneğin: http://codepen.io/jasonm23/pen/fADnu
Tarayıcıların çok önemli bir yüzdesi üzerinde çalışır.
Bunun bir JQuery seçicide veya document.querySelector
^=
, *=
ve $=
) ayrıca IE7 ve IE8 tarafından desteklenmektedir. Belki standartlaştırılmadan önce IE'de tanıtıldı.
CSS3 alt dize özellik seçicilerini belirtmeye değer
[attribute^=value] { /* starts with selector */
/* Styles */
}
[attribute$=value] { /* ends with selector */
/* Styles */
}
[attribute*=value] { /* contains selector */
/* Styles */
}
Birden fazla seçiciyi birleştirebilirsiniz ve bu, her niteliği ve niteliği href
, değerlerine dayalı olarak yalnızca CSS ile seçebildiğinizi bilerek çok havalı .
Nitelik seçiciler, bazı ekstralar id
ve class
niteliklerle oynamanıza izin verir
İşte Özellik Seçiciler hakkında harika bir okuma
a[href="http://aamirshahzad.net"][title="Aamir"] {
color: green;
text-decoration: none;
}
a[id*="google"] {
color: red;
}
a[class*="stack"] {
color: yellow;
}
<a href="http://aamirshahzad.net" title="Aamir">Aamir</a>
<br>
<a href="http://google.com" id="google-link" title="Google">Google</a>
<br>
<a href="http://stackoverflow.com" class="stack-link" title="stack">stack</a>
Tarayıcı desteği:
IE6 +, Chrome, Firefox ve Safari
Ayrıntıları buradan kontrol edebilirsiniz .
[data-value] {
/* Attribute exists */
}
[data-value="foo"] {
/* Attribute has this exact value */
}
[data-value*="foo"] {
/* Attribute value contains this value somewhere in it */
}
[data-value~="foo"] {
/* Attribute has this value in a space-separated list somewhere */
}
[data-value^="foo"] {
/* Attribute value starts with this */
}
[data-value|="foo"] {
/* Attribute value starts with this in a dash-separated list */
}
[data-value$="foo"] {
/* Attribute value ends with this */
}