28220 sujets

CSS et mise en forme, CSS3

Hello,
J'aimerais savoir ce que veut dire cette commande
html>body


Ou mieu encore
celle la
html>body .menu a, html>body .menu a:visited, html>body .menu a:hover, html>body .menu a:active,
html>body .ssmenu a, html>body .ssmenu a:visited, html>body .ssmenu a:hover, html>body .ssmenu a:active {
	width :auto;
}


Si quelqu'un peut m'eclairé.

Merci
Adrian
Modifié par Adrian (09 May 2005 - 12:41)
balise1>balise2

est un sélecteur qui s'applique aux balise2 directement enfant (dans le sens xml du terme) de balise1.

Contrairement à

balise1 balise2

qui sélectionne toutes les balise2 située de près ou de loins à l'intérieur de balise1.

Dans le cas de

html>body

on sélectionne uniquement body
cela revient donc à utiliesr html body

MAIS

ce sélecteur est utilisé comme un "hack" pour tromper les navigateurs.

Il faut savoir que IE ne gère pas le sélecteur parent > donc toutes les règles qui le contiennent il ne les comprend pas.

Un exemple: je veux que mes paragraphes soient petit dans IE et grand dans les navigateurs plus conformes :

p{font-size: 1em;}
html>body p{font-size: 3em;}

L'ordre à de l'importance puisque les navigateurs conformes comprennent les deux et donc appliquent la dernière.

Smiley smile
Bonjour et bienvenue Adrian,

@TriadPtale

Ce selecteur avant d'être un "hack" est un sélecteur, l'utilisation des hacks est un détournement des recommandations pour palier aux manques d'implémentation de certaines propriétés css comme le sélecteur d'enfant (">") dans tel ou tel navigateur, aucune garantie de perrenité quant à l'utilisation de ces hacks. Smiley cligne

Pour les sélecteurs (entres autres propriétés) une bonne source, la recommandation: Les sélecteurs
Modifié par Igor (08 May 2005 - 00:59)
TriadPtale a écrit :
Tout à fait, seulement vu la tête de son code source, je précisais pourquoi il utilise ça Smiley smile


J'avais bien saisi ton propos, c'était juste pour préciser que selon moi les hacks c'est mal Smiley lol . On aura bonne mine si dans 2 mois IE 7 beta interprète bien toutes les propriétés css2 que IE 6 ne comprend pas aujourd'ui Smiley murf .
Hello,
Merci a vous pour cette réponse clair et précisie.

Il serait effectivement pas mal que IE (ou plustot Microsoft) commence a ce mettre a niveau avec les règles de la W3C.

Mais bon, je pense que c'est plus un rève qu'autre chose. Non??

Encore merci
@++
Igor a écrit :


J'avais bien saisi ton propos, c'était juste pour préciser que selon moi les hacks c'est mal Smiley lol . On aura bonne mine si dans 2 mois IE 7 beta interprète bien toutes les propriétés css2 que IE 6 ne comprend pas aujourd'ui Smiley murf .


Bha oui et non...

si IE 7 se met à interpréter les sélecteurs enfant, il y a de fortes chances que le hack ne soit plus nécessaire...
Adrian a écrit :
Hello,
Merci a vous pour cette réponse clair et précisie.

Il serait effectivement pas mal que IE (ou plustot Microsoft) commence a ce mettre a niveau avec les règles de la W3C.

Mais bon, je pense que c'est plus un rève qu'autre chose. Non??

Encore merci
@++


Je râle très souvent sur IE, et c'est vraiment un truc qui m'énerve, mais objectivement, IE est quand même ce qu'on peut appeler un navigateur conforme...

Il y a évidemment des problèmes bien chiant :
- modèle de boîte
- positionnement fixed
- transparence png...

Mais finalement c'est pas si pire que ça ...

C'était mon moment de sagesse du jour Smiley cligne
TriadPtale a écrit :
si IE 7 se met à interpréter les sélecteurs enfant, il y a de fortes chances que le hack ne soit plus nécessaire...
Bah oui et non, parce que pour IE6 et moins, ces lignes seront toujours quelque part des hacks puisqu'ils ne les liront tjs pas et seuls les navigateurs conformes (avec l'arrivé d'un petit nouveau : IE7) pouront les lires.

Si tous les navigateurs étaient conformes, ce n'est pas ce genre de hack qu'il faudrait supprimer, mais les lignes "généralistes" qui les précèdent.

Tiens, j'ai lu récemment ici qu'IE 5 n'appliquait les sélecteurs enfant que s'ils étaient "nicely formatted". C'est à dire qu'il comprendrait
body > div#foo{
 position:fixed; /* IE5 applies this rule */
}
mais pas
body>div#foo{
 position:fixed; /* IE _doesn't_ apply this rule */
}

Je n'ai pas pu tester car je n'ai pas IE5. Pourtant je croyait qu'IE (en général), en plus de ne pas interpréter les sélecteurs enfant, ne gérait pas "fixed" autrement que pour le background .

Je comprend plus rien Smiley nut