Le W3C a publié la première spécification CSS4 hier, et il a mis l’accent sur les sélecteurs (Selectors
). La spécification introduit de nombreux éléments nouveaux et utiles sur les sélecteurs.
Certains sélecteurs sont nouvellement introduits (où E
est un élément) :
- E:not (s1, s2)
- E:matches(s1,s2)
- E[foo= »bar » i]
- E:local-link
- E:local-link(0)
- E:current
- E:current(s)
- E:past
- E:future
- E:indeterminate
- E:default
- E:in-range, E:out-range
- E:required, E:optional
- E:read-only
- E:read-write
- E:nth-match(n of selector) – stated twice in the spec for some reason
- E:column(selector)
- E:nth-column(n)
- E:nth-last-column(n)
- E /foo/ F – this sounds interesting, an F element referenced by E’s foo attribute
- $E > F – this will be important, it selects the “E” part of what used to only select F (you can still use E>F for the F element)
Prenons l’exemple suivant : Comment sélectionner les nœuds parents d’un élément ? Potentiellement, en sélectionnant le parent d’un élément. En mettant en œuvre l’implémentation suivante à l’aide du $
vous pouvez changer l’objet d’un sélecteur, et ainsi vous déplacer dans l’arbre
$li > a { background: #fff }
La déclaration s’applique donc à l’élément <li>
et non pas à l’élément <a>
.
Si les anciens sélecteurs (CSS2) et les plus récents (CSS3) sont fort intéressants, il est clair que les futurs (CSS4) le seront tout autant. En revanche, je ne sais pas vraiment ce que va être les indicateurs (indicators
) dans cette nouvelle spécification ainsi que leurs utilités. Le document est quelque peu vague pour savoir si vous allez définir un attribut date
/time
, ou si c’est juste before
/after
dans la hiérarchie du document.
Bien sûr, officiellement CSS4 ne devrait pas voir le jour vraisemblablement pendant quelques années. De plus, rappelons que CSS3 n’est techniquement pas encore fini…
Toutefois, je peux, sans risque, annoncer que le W3C devrait commencer à libérer ces spécifications pour que les navigateurs puissent commencer à les intégrer à leur convenance.
Il s’agit vraiment d’une épée à double tranchant. Si une spécification est implémentée différemment par les navigateurs, alors nous, développeur Web dans quelle direction devons-nous partir ?
Note : Si Raphaël, tu lis cet article tu peux commencer à travailler sur le prochain Memento 😉
Avez-vous jeté un œil à la spécification ? Que pensez-vous des possibilités offertes par celle-ci ? Les attendiez-vous ? Pensez-vous vraiment que le CSS4 est possible dès maintenant alors que le CSS3 est toujours en cours ? Venez réagir…