| Auteur | |
|---|---|
| Hum | # 25 Jan 2006 - 03:38:48 |
| 863 Posts |
Hello, là commence a m'emmeler les pinceaux... ma liste me fait sauter mon style appliqué a <p>. edit : en fait je veux faire une liste ds un p, ... css: p {font-size:0.7em; font-family:Verdana, Arial, Helvetica, sans-serif; <p><img class="floatleft" src="./images/histo03.jpg" alt="Localisation Presles" /><img class="floatleft" src="./images/histo033.jpg" alt="Localisation Presles" /> Modifié par Hum (25 Jan 2006 - 12:16) |
| Laurent Denis | # 25 Jan 2006 - 04:23:48 |
| 7888 Posts |
Bonjour Hum, Voilà une erreur (tout à fait compréhensible) très intéressante et très pédagogique. Elle est même presque merveilleuse (C'est une excellente journée qui commence, je crois) En effet, en (X)HTML, les éléments <p> ne peuvent pas contenir de listes <ul>, lesquelles ne peuvent pas contenir directement des éléments <dl>, lesquelles ne peuvent pas contenir du texte anonyme. Et cette erreur de validité HTML conduit directement au problème CSS... alors que beaucoup de gens, volontairement ou involontairement, ne se soucient pas de réaliser d'abord un site valide avant de s'occuper de sa présentation... En cas de problème de rendu, toujours commencer par vérifier la validité du code (X)HTML Pour une solution vite fait, le code HTML valide à utiliser pourrait être, par exemple :
Il suffit, partant de là (ou d'un autre code valide équivalent), de modifier les styles en conséquence. Mais si je peux me permettre de creuser un peu... :Ce type de code invalide sera traité par chaque navigateur selon ses propres processus de traitement d'erreur, potentiellement variables de l'un à l'autre, car ils ne sont soumis actuellement à aucune spécification : à moins d'avoir une parfaite connaissance de ces processus pour chaque navigateur (ce qui est en fait illusoire actuellement, même à un très haut niveau d'expertise), tu t'en remets donc en quelque-sorte au hasard pour déterminer l'arbre du document, c'est à dire la structure finale réelle de ton document telle que le navigateur va l'utiliser pour le rendre à l'écran avec CSS et le manipuler avec js. Les styles CSS, on l'ignore trop souvent, ne sont en effet pas appliqués au code HTML que vous avez écrit, mais au code tel qu'il a été interprété et corrigé par le navigateur, qui s'efforcera de rétablir un code valide et donc utilisable. Le résultat peut être très loin des attentes de l'auteur, comme c'est le cas ici. Pour les curieux, un exemple : ici, IE, FF et Opera considèrent que le paragraphe se ferme avant l'ouverture de la liste <ul>, et insèrent une balise </p> avant le <ul>. Cette décision est logique dans la mesure où la balise de fermeture des paragraphes est optionnelle en HTML et où le document, même s'il est peut-être formellement en XHTML, est traité en tant que text.html. C'est d'ailleurs ce qui conduit ces 3 navigateurs à adopter dans ce cas précis la même méthode de traitement de l'erreur, alors qu'ils auraient pu diverger. Firefox traite de même la fermeture finale de paragraphe en la transformant en <p></p> vide. Opera, lui, fait directement disparaître le </p> et ne génère rien dans l'arbre du document à ce point. Je n'ai pas vérifié quel était le choix fait par IE, mais on peut noter au passage que, dans tous ces navigateurs, il est totalement inutile de mettre une liste <ul> dans un paragraphe puisque cette structure invalide est obligatoirement neutralisée en HTML et (X)HTML traité comme tel. On se retrouve donc, au final, avec un premier paragraphe contenant du texte, suivi par une liste ul au contenu invalide, suivi par du texte anonyme (Celui commençant par Ainsi que tant d’autres hélas disparues...), suivi éventuellement par un paragraphe vide... Tout à fait logiquement, le contenu de <ul> et le texte anonyme ne peuvent pas être stylés par une règle p {...} comme l'auteur le souhaitait, puisqu'ils ne sont pas dans un <p> une fois le code corrigé par ces navigateurs On a donc structuré et stylé pour rien, sauf que le navigateur et l'auteur ont dû travailler un peu plus que si le code avait été valide. C'est un très bel exemple, très simple, de la nécessité constante de ne travailler que sur des structures valides... et donc prévisibles et faisant gagner du temps , ce qui est tout l'intérêt des standards Web (En passant, pour les vraiment très curieux, voir le récent billet de Yan Hyxon : Tag Soup: Crazy parsing adventures, particulièrement révélateur.) Modifié par Laurent Denis (25 Jan 2006 - 06:01) Je ne fais que passer |
| Hum | # 25 Jan 2006 - 11:42:49 |
| 863 Posts |
Merci beaucoup. Je m'en suis donc sorti comme tu me l'as indiqué. html <p class="citation">Citons néanmoins :</p> css .citation { |
| Olivier | # 25 Jan 2006 - 11:51:03 |
| Modérateur 5807 Posts |
Salut, pourquoi n'utilises tu pas un blockquote puisque c'est une citation ? La FAQ répond aux questions fréquemment posées. Vérifiez qu'elle ne contient pas une réponse à votre problème. |
| Igor | # 25 Jan 2006 - 11:51:10 |
| Modérateur 5646 Posts |
Hum a écrit : C'est donc un problème résolu: Comment éditer un sujet sur le forum, et comment classer un sujet en [Résolu] ? |
| Hum | # 25 Jan 2006 - 12:16:29 |
| 863 Posts |
C'est plus une liste qu'une citation, mais comme le texte est : Citons néanmoins...ben j'ai repris l'intitulé pour la classe,... regle |
Les références web : openweb.eu.org - opquast.com - webmaster-hub.com - webrankinfo.com - salemioche.net - web-pour-tous.org - webonorme.org
Nos partenaires : Editions Eyrolles
Nikozen : Hébergement - Réalisation : Alsacreations.fr