Bonjour,
Je sais que cela a été abordé souvent mais la solution toujours proposée, soit le height à 1% ne peut fonctionner en l'occurance.
J'ai préparé un petit schéma de mon site Web qui vous fera rapidement comprendre comment cela fonctionne.
http://ixzed.free.fr/screenshit.gif
Cette image a été prise sous IE. Sous Mozilla, la bordure rouge est par-dessus la bordure verte et il n'y a donc aucun problème.
Tandis que sous IE, la bordure n'est pas par-dessus à cause de mon menu en float (décalage de 3px vers la droite). Lorsque le menu est fini, on remarquera que le décalage cesse (lors de la création d'un nouveau paragraphe bien entendu).
Si je n'applique pas l'attribut height à 1%, le résultat est partiellement le même excepté que le décalage se termine au milieu d'un paragraphe plutôt qu'entre deux paragraphes.
Vous pourriez alors me demander l'intérêt de superposer deux bordures. Si le texte est plus toujours plus grand que le menu, l'intérêt est moindre. Mais, dans certains cas, si le menu est plus grand que le texte, alors il y a aura un problème car ma bordure n'ira pas jusqu'en bas. C'est donc pour cela que j'ai deux bordures superposées, que je mets habituellement de la même couleur.
Donc, la solution proposée au décalage de 3px vers la droite sous IE par rapport aux floats ne règle pas totalement le problème. Elle décale le bloc au complet plutôt que d'en décaler qu'une partie, ce qui règle généralement le cas.
J'ai tenté d'appliquer une marge négative mais ça ne fonctionne pas. Et, même si ça fonctionnait, les paragraphes qui sont plus bas que la hauteur du menu serait alors décalé vers le menu...
J'ai tenté également de mettre une position relative, ce qui fonctionne partiellement avec l'attribut left à -4px. Le problème est encore une fois que mes paragraphes plus bas sont aussi décalés.
La technique facile serait de me faire deux classes, une pour les paragraphes qui sont à la hauteur du menu et une pour ceux qui sont plus bas que mon menu. Cependant, si mon site a 150 pages et que j'ajoute un lien dans mon menu, je dois vérifier chacune de ces pages au cas où le décalage ne correspondrait plus. Je pourrais encore me faire répondre que je pourrais me créer une fonction PHP toute faite, mais vous comprendrez que je préfère largement une solution purement CSS.
Si quelqu'un a des suggestions, je suis preneur.
Merci d'avance,
D@n!eL_
Modifié par D@n!eL_ (07 May 2006 - 05:53)
Je sais que cela a été abordé souvent mais la solution toujours proposée, soit le height à 1% ne peut fonctionner en l'occurance.
J'ai préparé un petit schéma de mon site Web qui vous fera rapidement comprendre comment cela fonctionne.
http://ixzed.free.fr/screenshit.gif
Cette image a été prise sous IE. Sous Mozilla, la bordure rouge est par-dessus la bordure verte et il n'y a donc aucun problème.
Tandis que sous IE, la bordure n'est pas par-dessus à cause de mon menu en float (décalage de 3px vers la droite). Lorsque le menu est fini, on remarquera que le décalage cesse (lors de la création d'un nouveau paragraphe bien entendu).
Si je n'applique pas l'attribut height à 1%, le résultat est partiellement le même excepté que le décalage se termine au milieu d'un paragraphe plutôt qu'entre deux paragraphes.
Vous pourriez alors me demander l'intérêt de superposer deux bordures. Si le texte est plus toujours plus grand que le menu, l'intérêt est moindre. Mais, dans certains cas, si le menu est plus grand que le texte, alors il y a aura un problème car ma bordure n'ira pas jusqu'en bas. C'est donc pour cela que j'ai deux bordures superposées, que je mets habituellement de la même couleur.
Donc, la solution proposée au décalage de 3px vers la droite sous IE par rapport aux floats ne règle pas totalement le problème. Elle décale le bloc au complet plutôt que d'en décaler qu'une partie, ce qui règle généralement le cas.
J'ai tenté d'appliquer une marge négative mais ça ne fonctionne pas. Et, même si ça fonctionnait, les paragraphes qui sont plus bas que la hauteur du menu serait alors décalé vers le menu...
J'ai tenté également de mettre une position relative, ce qui fonctionne partiellement avec l'attribut left à -4px. Le problème est encore une fois que mes paragraphes plus bas sont aussi décalés.
La technique facile serait de me faire deux classes, une pour les paragraphes qui sont à la hauteur du menu et une pour ceux qui sont plus bas que mon menu. Cependant, si mon site a 150 pages et que j'ajoute un lien dans mon menu, je dois vérifier chacune de ces pages au cas où le décalage ne correspondrait plus. Je pourrais encore me faire répondre que je pourrais me créer une fonction PHP toute faite, mais vous comprendrez que je préfère largement une solution purement CSS.
Si quelqu'un a des suggestions, je suis preneur.
Merci d'avance,
D@n!eL_
Modifié par D@n!eL_ (07 May 2006 - 05:53)