Sokféleképpen választhatja ki az elemeket a CSS-ben. A legalapvetőbb választás a címke neve, például p ( )
. Szinte bármi, ami konkrétabb, mint a címkeválasztó, attribútumokat használ - class
és ID
mindkettő kiválasztja ezeket az attribútumokat a HTML elemeken. De class
, és ID
nem csak tulajdonítja a fejlesztők kiválasztáshoz. Valamennyi elem attribútumát használhatjuk kiválasztóként.
Az attribútumválasztásnak speciális szintaxisa van. Íme egy példa:
a(href="https://css-tricks.com") ( color: #E18728; )
Ez egy pontos egyezés választó, amely csak href
a „https://css-tricks.com” pontos attribútumértékű linkeket választja ki .
A hét különböző típus
Az attribútumválasztók alapértelmezés szerint megkülönböztetik a kis- és nagybetűket (lásd a kis- és nagybetűk közötti egyezést), és zárójelbe vannak írva ()
.
Hét különböző típusú egyezés található meg az attribútumválasztóval, és a szintaxis mindegyiknél más. A bonyolultabb attribútumválasztók mindegyike a pontos egyezés választó szintaxisára épül - mindegyik az attribútum nevével kezdődik, és egy egyenlőségjelrel zárul, amelyet az attribútumérték (ek) követ, általában idézőjelben. Az attribútum neve és az egyenlőségjel között az különbözteti meg a választókat.
(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 */ )
Az érték tartalmazza: az attribútum értéke tartalmaz egy kifejezést egyetlen értékként, egy értéket az értéklistában vagy egy másik érték részeként. A választó használatához tegyen egy csillagot (*) az egyenlőségjel elé. Például olyan img(alt*="art")
képeket fog kiválasztani , amelyek alt szövege az „absztrakt művészet” és az „új sportot kezdő sportoló”, mert a „művészet” értéke a „kezdő” szóban van.
Az érték szóközzel elválasztott listában található: az érték vagy az egyetlen attribútumérték, vagy egy egész érték egy szóközzel elválasztott értékhalmazban. A „tartalmaz” választóval ellentétben ez a választó nem fogja keresni az értéket szótöredékként. A választó használatához tildét (~) adjon meg az egyenlőségjel előtt. Például olyan img(alt~="art")
képeket fog kiválasztani , amelyek alt szövege „absztrakt művészet” és „művészeti show”, de nem „új sportot kezdő sportoló” (amelyet a „tartalmaz” választó választana).
Az érték a következővel kezdődik: az attribútum értéke a kiválasztott kifejezéssel kezdődik. Ennek a választónak a használatához adjon meg egy karátot (^) az egyenlőségjel előtt. Ne felejtsd el, az esetérzékenység számít. Például az img (alt = „art”) az „art show” és a „művészi minta” alt szövegű képeket választja ki, az „Arthur Miller” alt szövegű képeket azonban nem, mert az „Arthur” nagybetűvel kezdődik .
Az érték a kötőjelekkel elválasztott listán található először: Ez a választó nagyon hasonlít a „kezdődik” választóra. Itt a választó megegyezik egy olyan értékkel, amely vagy az egyetlen érték, vagy az első a kötőjelekkel elválasztott értéklistában. Ennek a választónak a használatához adjon meg pipa karaktert (|) az egyenlőségjel előtt. Például az „1900–2000” értékű li(data-years|="1900")
listaelemeket választja data-years
, data-years
az „1800–1900” értékű elemeket azonban nem .
Az érték a következővel végződik: az attribútum értéke a kiválasztott kifejezéssel végződik. A választó használatához adjon meg egy dollárjelet ($) az egyenlőségjel előtt. Például a(href$="pdf")
kijelöl minden olyan linket, amely a .pdf végződésű.
Megjegyzés az idézetekről: Bizonyos körülmények között idézőjelek nélkül is megkerülheti az értéket, de az idézőjelek nélküli kiválasztás szabályai nem konzisztensek a böngészők között. Az idézetek mindig működnek, így ha ragaszkodik ezek használatához, biztos lehet benne, hogy a választója működni fog.
Lásd a CSS-Tricks tollattribútum-választóit (@ css-tricks) a CodePen-en.
Szórakoztató tény: az értékeket karakterláncként kezeljük, így nem kell különösebb karaktereket eltüntetni, hogy azok illeszkedjenek egymáshoz, akárcsak akkor, ha szokatlan karaktereket használna egy osztály vagy azonosító választóban.
(class="(╯°□°)╯︵ ┻━┻")( color: red; font-weight: bold; )
Kis- és nagybetűk közötti egyezés
A kis- és nagybetűkkel nem rendelkező tulajdonságválasztók a CSS Munkacsoport 4. szintű kiválasztói részei. Mint fent említettük, az attribútumérték-karakterláncok alapértelmezés szerint megkülönböztetik a kis- és nagybetűket, de i
közvetlenül a záró zárójel előtti hozzáadással nagybetű-érzéketlenné tehetők :
(attribute="value" i) ( /* Styles here will apply to elements with: attribute="value" attribute="VaLuE" attribute="VALUE"… etc */ )
A kis- és nagybetűk közötti egyezés valóban hasznos lehet a kiszámíthatatlan, ember által írt szöveget tartalmazó attribútumok célzásához. Tegyük fel például, hogy beszédbuborékot szerkesztett egy csevegőalkalmazásban, és minden olyan üzenetet szeretett volna hozzáadni minden üzenethez, amelynek valamilyen formában a „szia” szövege volt. Ezt csak CSS-sel teheti meg, a kis- és nagybetűk figyelmen kívül hagyva az összes lehetséges variációt el tudja érni:
Tekintse meg a CSS-Tricks (@ css-tricks) tollbetét-érzéketlen CSS attribútum-egyeztetését a CodePen-en.
Kombinálva őket
Kombinálhatja az attribútumválasztót más választókkal, például címkével, osztályral vagy azonosítóval.
div(attribute="value") ( /* style rules here */ ) .module(attribute="value") ( /* style rules here */ ) #header(attribute="value") ( /* style rules here */ )
Vagy akár több attribútumválasztót is kombinálhat. Ez a példa olyan képeket választ ki, amelyek alt szöveggel tartalmazzák a „személy” szót az egyetlen értéket vagy egy szóközzel elválasztott lista értékét , és egy olyan src
értéket, amely tartalmazza a „lorem” értéket:
img(alt~="person")(src*="lorem") ( /* style rules here */ )
Lásd a CSS-Tricks (@ css-tricks) tollal kombinált attribútumainak és csak az attribútumoknak a kiválasztását a CodePen-en.
Attribútumválasztók a JavaScript-ben és a jQuery-ben
Az attribútumválasztókat ugyanúgy lehet használni a jQuery-ben, mint bármely más CSS-választót. A JavaScript-ben attribútumválasztókat használhat a document.querySelector()
és gombbal document.querySelectorAll()
.
Lásd a JS és a jQuery tollattribútum-választóit a CSS-Tricks-től (@ css-tricks) a CodePen-en.
Összefüggő
- osztály
- ID
Több információ
- A sovány az attribútumválasztókon
- Attribútumválasztók az MDN-nél
- Attribútumválasztók a W3C CSS specifikációban
Böngésző támogatás
Króm | Szafari | Firefox | Opera | AZAZ | Android | iOS |
---|---|---|---|---|---|---|
Bármi | Bármi | Bármi | Bármi | 7+ | Bármi | Bármi |