Bonjour,

Tiens, bonne occasion reproduire ici ma réponse antérieure à une question similaire (le sujet ayant été rendu introuvable via la recherche par son auteur qui en a effacé le message initial):

Cela signifie simplement qu'une CSS valide n'aura les effets escamptés que sur un document HTML lui-même valide.

Disons que la première étape du traitement d'une page Web par un navigateur est d'établir à partir du code HTML l'arbre du document, c'est à dire la structure exacte de ses différents noeuds éléments, attributs, texte, commentaires... C'est à ce stade que le navigateur rectifie (à sa manière) certaines erreurs éventuelles dans le code HTML (éléments mal imbriqués par exemple).

Pour le rendu CSS, il partira de cet arbre du document pour établir, en fonction des propriétés CSS, la structure de formatage qui sera ensuite affichée, imprimée, lue... Cette structure est généralement très similaire à l'arbre du document, mais peut comporter des éléments supplémentaires (générés par des :first-letter, des :before, etc.) ou des éléments en moins (retirés par des display:none).

Pour obtenir un rendu CSS conforme à ce qui est prévu, il faut donc que l'arbre du document soit lui-même conforme aux attentes de l'auteur : un code HTML comportant des erreurs pourra en effet entraîner un arbre différent des prévisions et au bout du compte un rendu inattendu.

Exemple:
- structure invalide en XHTML: <p style="color: red"><ul><li>foo</li></p> supposée donner un texte "foo" en rouge.
- arbre du document: l'erreur est rectifiée à la manière HTML et <p> est fermé avant <ul>
- application des styles: la propriété color:red ne s'applique finalement pas au texte "foo". Le webmestre est déçu

Un autre exemple que j'ai vu passer récemment: l'auteur avait utilisé certains caractères invalides du point de vue HTML dans ses valeurs d'attribut id : les blocs de règle CSS visant ces id étaient valides en CSS, mais n'étaient pas appliqués, faute d'avoir une cible dans l'arbre du document.

Pour visualiser l'arbre du document, il existe des nombreux outils (extension web developper pour FF, barre d'outil "accessibilité" pour IE, menu webdevelopper pour Opera... ou encore le Live DOM viewer d'Hyxon).

En conclusion:
- cet avertissement rappelle qu'une CSS valide ne sert à rien si une erreur se produit en amont.
- comme tous les avertissements CSS, il ne signifie pas qu'une erreur est présente, mais simplement que le validateur CSS ne peut pas tout vérifier (ici, la validité HTML).
Modifié par Laurent Denis (31 Jul 2006 - 08:23)
Bonjour,

<edit>

Ah... ça m'apprendra à répondre sans être allé voir le lien donné dans la question Smiley biggol

C'est curieux en effet. Je regarde ça...

</>
Modifié par Laurent Denis (31 Jul 2006 - 09:17)
Bon bah, voilà: le lien vers la feuille de style est incorrect, il lui manque son type:

<link rel="stylesheet" media="screen" href="css/importer2.css" [#red]type="text/css"[/#] />


C'est un très bel exemple pour mon premier message: seul le processus de récupération d'erreur des navigateurs permet à la feuille de style d'être prise en compte. Mais rien n'assure que toutes les applications comporteront cette récupération d'erreur, ou la feront de la même manière.

Exemple: ici, FF, Opera, Safari..., ignorent très probablement la CSS si la page est servie en application/xhtml+xml... Ce qui devrait impérativement être le cas, puisque le doctype est XHTML1.1 , nom de Zeus !
Modifié par Laurent Denis (31 Jul 2006 - 09:26)
Petit truc qui n'a rien à voir avec ta question :

sous IE6, si tu passes la souris sur les liens du haut, le border généré en dessous des liens pousse l'image du menu de droite.

sinon, c très sympa.
@ Laurent

Merci pour tes explications détaillées! Et moi qui n'avais même pas eu le réflexe de vérifier cette ligne de commande! (c'est un vieux canevas que j'ai récupéré du temps où je ne me préoccupais guère de standardisation de mes pages).

@ orgied

Merci d'avoir pris le temps de me signaler cette erreur (je n'avais pas remarqué avec mon virtual PC qui réagit très lentement à ce genre d'effet; vivement que j'achète mon mactel!).
Oui oui... Un oubli de ma part... J'étais en train de tenter de corriger le problème de décalage de l'image Smiley smile