En liten sak hände på vägen till publiceringen CSS :has()
väljare till den gamla almanackan. Jag hade ursprungligen beskrivit :has()
som en "förlåtande" väljare, tanken är att allt i dess argument utvärderas, även om en eller flera av objekten är ogiltiga.
/* Example: Do not use! */
article:has(h2, ul, ::-scoobydoo) { }
Se ::scoobydoo
där inne? Det är helt ogiltigt. En förlåtande väljarlista ignorerar den falska väljaren och fortsätter att utvärdera resten av objekten som om det vore skrivet så här:
article:has(h2, ul) { }
:has()
var verkligen en förlåtande väljare i ett tidigare utkast daterat den 7 maj 2022. Men det ändrades efter att ett problem rapporterats att den förlåtande naturen kommer i konflikt med jQuery när :has()
innehåller en komplex väljare (t.ex header h2 + p
). W3C landade på en resolution till göra :has()
en "oförlåtande" väljare bara för några veckor sedan.
Så vårt tidigare exempel? Hela väljarlistan är ogiltig eftersom den falska väljaren är ogiltig. Men de andra två förlåtande väljarna, :is()
och :where()
, lämnas oförändrade.
Det finns lite av en lösning för detta. Kom ihåg, :is()
och :where()
är förlåtande, även om :has()
är inte. Det betyder att vi kan kapsla in någon av dessa väljare :has()
för att få ett mer förlåtande beteende:
article:has(:where(h2, ul, ::-scoobydoo)) { }
Vilken du använder kan ha betydelse eftersom specificiteten hos :is()
bestäms av den mest specifika posten i dess lista. Så om du behöver något mindre specifikt är det bättre att nå :where()
eftersom det inte bidrar till specificitetspoängen.
/* Specificity: (0,0,1) */
article:has(:where(h2, ul, ::-scoobydoo)) { } /* Specificity: (0,0,2) */
article:has(:is(h2, ul, ::-scoobydoo)) { }
Vi uppdaterade några av våra inlägg för att återspegla den senaste informationen. Jag ser massor av andra i naturen som behöver uppdateras, så bara en liten PSA för alla som behöver göra detsamma.
- SEO-drivet innehåll och PR-distribution. Bli förstärkt idag.
- Platoblockchain. Web3 Metaverse Intelligence. Kunskap förstärkt. Tillgång här.
- Källa: https://css-tricks.com/has-is-an-unforgiving-selector/
- : har
- 1
- 7
- a
- och
- någon
- Argumentet
- Artikeln
- därför att
- Där vi får lov att vara utan att konstant prestera,
- Bättre
- Bit
- komplex
- innehåller
- CSS
- daterad
- beskriven
- bestämd
- utkast
- antingen
- Hela
- utvärdera
- utvärderade
- Även
- exempel
- få
- skaffa sig
- GitHub
- hänt
- HTTPS
- Tanken
- in
- info
- fråga
- IT
- artikel
- jQuery
- senaste
- Lista
- liten
- Materia
- betyder
- kanske
- mer
- mest
- Natur
- Behöver
- behov
- Nest
- ONE
- ursprungligen
- Övriga
- Övrigt
- plato
- Platon Data Intelligence
- PlatonData
- Massor
- inlägg
- föregående
- vinning
- publicering
- reflektera
- ihåg
- Upplösning
- REST
- Samma
- se
- eftersom
- So
- något
- specifik
- specificitet
- Smakämnen
- sak
- till
- TOTALT
- uppdaterad
- användning
- veckor
- VEM
- Vild
- skriven
- Om er
- zephyrnet