28220 sujets

CSS et mise en forme, CSS3

Bonjour

Je me pose une petite question Smiley smile

Comment cela doit se passer dans le cas ou l'on utilise plusieurs pseudos elements/pseudos selecteurs dans le meme selecteur ?

par exemple p:first-letter:hover ? cela ne devrait pas selectionner la premiere lettre du paragrapge lorsque celle ci est selectionné ? et qu'en est il de p:hover:first-letter ?

J'ai essayé mais ca ne fait rien sur Firefox Smiley ohwell Alors que a:hover:before fonctionne Smiley ohwell

J'aimerais avoir si possible des explications / liens sur l'utilisation de plusieurs pseudos elements/selecteur dans le meme selecteur Smiley smile

Merci
Modifié par CyrilCS (03 Sep 2005 - 08:22)
Bonjour,

Selon CSS, les pseudo éléments (:first-letter, :before, :after, :first-line) doivent toujours être placés en fin de sélecteur (une fois atteint l'élément "réel" concerné).

D'autre part, en raison d'un bug, firefox ne reconnaîtra la combinaison :hover:first-letter que si :first-letter a été défini précédement (Opera implémente correctement la spécification).

Donc, utiliser:
p:first-letter {
...
}
p:hover:first-letter {...
}

Modifié par Laurent Denis (03 Sep 2005 - 04:56)
OK merci Smiley smile


et :first-letter:hover cela n'a aucun sens selon les spécifications ? cela ne doit pas selectionner la premiere lettre lorsque celle ci a le curseur ?
Du côté de la norme, ce n'est pas explicitement tranché :
- CSS ne définit pas quels éléments sont susceptibles d'être dans le champ de :hover .
- Mais l'idée sous-jacente semble être qu'une pseudo-classe ne peut agir que sur un élément "réel", et non sur un pseudo-élément (à confirmer).

Du côté des implémentations, chaque navigateur peut donc se comporte comme il veut :
- Firefox semble coller à la norme au sens le plus restrictif, puisqu'il ignore :first-letter:hover, mais cela tient sans doute plus du hasard qu'autre chose, puisqu'il va également ignorer :hover:first-letter si :first-letter n'a pas été utilisé auparavant.
- Opera assimile totalement les deux syntaxes et se comporte de la même manière dans les deux cas, ce qui est sans doute discutable.

Il semble donc qu'on ne puisse pas limiter l'effet de :hover à la première lettre d'un élément sans balisage supplémentaire (pour faire un span:hover).
Modifié par Laurent Denis (03 Sep 2005 - 10:27)