28173 sujets

CSS et mise en forme, CSS3

Bonjour bonjour ^_^

J'ai comme qui dirait un gros trou de mémoire:

Admettons les childs CSS compatibles Gecko, exemple:
div#main > div > h1


Evidemment IE ne supporte pas cette écriture (on ne va pas lui en vouloir, ca aide bien pour les IE hacks). Quelle est la sémantique pour Internet Explorer? ^^

Ps1: Non je ne peux pas donner un identifiant à ces classes-filles (Joomla rulez).
Ps2: Non je vous assure que je ne veux pas (j'en connais qui insisteraient)
Modifié par Yoyann (26 Apr 2007 - 14:01)
Yoyann a écrit :
Admettons les childs CSS compatibles Gecko

Il s'agit du sélecteur d'enfants en CSS. Il n'est pas «compatible Gecko», vu qu'il s'agit d'une spécification du W3C ne visant pas un moteur de rendu en particulier. Par contre, il est effectivement implémenté dans Gecko (moteur de rendu des logiciels Mozilla), ainsi que dans KHTML (Konqueror), dans Webkit (Safari), dans Presto (Opera), mais effectivement pas dans Trident (Internet Explorer Windows).

Yoyann a écrit :
Evidemment IE ne supporte pas cette écriture (on ne va pas lui en vouloir, ca aide bien pour les IE hacks)

Les hacks sont une pratique peu fiable. Pour adresser des correctifs CSS à IE, utiliser les commentaires conditionnels. Voir la FAQ du forum pour plus d'informations sur 1) les hacks CSS et 2) les commentaires conditionnels.

Yoyann a écrit :
Quelle est la sémantique pour Internet Explorer? ^^

Il n'y a pas de syntaxe pour Internet Explorer (je suppose que tu voulais parler de syntaxe plutôt que de sémantique). Il y a une syntaxe standardisée qui fait partie de CSS 2.1, qui est celle que tu cites. Et comme tu le précises toi-même, elle n'est pas implémentée par Internet Explorer.

Par contre, tu arriveras peut-être à cibler le bon élément en utilisant le sélecteur de descendants (qui est compris par IE), de la manière suivante :
div#main div h1 {...}

Modifié par Florent V. (25 Apr 2007 - 15:42)
Florent V. a écrit :
Par contre, tu arriveras peut-être à cibler le bon élément en utilisant le sélecteur de descendants (qui est compris par IE), de la manière suivante :
div#main div h1 {...}


C'est effectivement la méthode que j'ai utilisé dans mon CSS, mais dans mon cas précis (et qui m'a poussé à venir poster), je m'interesse à un enfant en particulier. Plus en détail:

table.moduletablecadre tbody tr td


Le probleme étant que évidemment, d'autres <td> suivent celui que je cible, et ceux-ci prendrons aussi les parametres CSS définis.
Je me suis penché sur la pseudo-classe first-child, mais ne semble rien donner sous IE.

De grâce, une solution! Smiley lol
Yoyann a écrit :
Le probleme étant que évidemment, d'autres <td> suivent celui que je cible, et ceux-ci prendrons aussi les parametres CSS définis.

Il me semble que le problème aurait été le même avec le sélecteur d'enfants, en fait.

Yoyann a écrit :
Je me suis penché sur la pseudo-classe first-child, mais ne semble rien donner sous IE.

Exact, elle n'est pas implémentée.

Yoyann a écrit :
De grâce, une solution! Smiley lol

Alors si je résume :
- tu ne peux pas utiliser les sélecteurs CSS qui vont bien parce qu'IE ne les supporte pas et que ça doit passer dans IE ;
- tu ne peux pas modifier le code HTML pour appliquer explicitement des styles aux éléments voulus.

En gros tu ne peux rien faire, c'est ça ?
Ben non, pas de solution en vue.
Florent V. a écrit :
Par contre ça n'a pas l'air de correspondre au cas que tu exposais dans ton précédent message. Smiley hein


Eh bien pourtant si, puisque je voulais appliquer un style spécifique sur le premier child, et ne pas l'appliquer aux suivants. Smiley cligne
Cela m'a permit de reproduire la syntaxe d'enfants via la syntaxe des descendants. Ca prend plus de lignes mais ca a le mérite de fonctionner. Smiley ravi