Probleme de positionement en HTML CSS
Résolu/Fermé
A voir également:
- Probleme de positionement en HTML CSS
- Editeur html - Télécharger - HTML
- Espace en html ✓ - Forum HTML
- [**] Balise pour un espace vide en hml. Merci ✓ - Forum Webmastering
- Positionner une image html ✓ - Forum HTML
- &Nbsp html ✓ - Forum Webmastering
2 réponses
M@dien
Messages postés
437
Date d'inscription
mercredi 29 juillet 2009
Statut
Membre
Dernière intervention
23 septembre 2010
74
16 sept. 2009 à 10:34
16 sept. 2009 à 10:34
Bonjour,
Voici un CSS qui résout tes problèmes:
Pour le positionnement, le problème de compatibilité venait des margins et de la hauteur du <ul> de la barre de navigation.
En effet, les margins sont ajoutés les uns aux autres sur certains navigateurs, et fusionnés sur d'autres. il vaut donc mieux travailler avec des paddings.
De plus, le fait de mettre float:right; sur les <li> est très bien, mais a l'inconvénient de passer le <ul> correspondant dans un comportement façon "overflow:visible;". il faut donc le limiter en hauteur, pour que ça soit plus compatible.
Pour les liens en hover, j'ai fait quelques modifications. le fait de passer les <a> en 'display:block;' est la base pour pouvoir avoir des liens qui remplissent les <li>, mais il faut aller jusqu'au bout: - supprimer les padding des <li> afin que le contenu puisse prendre toute la place; -mettre le padding sur le <a> afin qu'il prenne toute la place.
Voilà!
Pour info, le rendu est le même sur Firefox 3.5, IE8, Opera 10, Safari 2.0 et Chrome 2.0
Voici un CSS qui résout tes problèmes:
body { font-family : "comic sans ms", arial, serif; color : white; width : 90%; background-image : url("http://www.w-corporation.com/site/images/fond2.jpg"); margin : auto; margin-bottom : 20px; margin-top : 20px; } #en_tete { height : 97px; background : black; text-align : center; font-family : satans; border : white 2px solid; } #barre_de_navigation { height:30px; margin:0px; padding:20px 20px 0px 20px; } #barre_de_navigation ul { margin:0px;} #barre_de_navigation a:hover { background-color : white; color : black; } #barre_de_navigation li { float : right; margin:0px 5px; border : 2px solid white; border-bottom : black 0px solid; padding:0px; list-style-type : none; background-color : black; } #barre_de_navigation a { display : block; color : white; height:24px; text-decoration : none; padding : 3px 10px; } #barre_de_navigation li.active { border-bottom: 1px solid #fff; background-color: #fff; } #menu { float : left; width : 120px; } .element_menu { border : 2px solid black; background-color : black; border : white 2px solid; margin : 15px; } .element_menu ul { padding : 0px; padding-left : 8px; margin : 0px; margin-bottom : 5px; list-style : none; } .element_menu h3 { text-align : center; margin : 0px; margin-top : 4px; margin-bottom : 8px; padding-bottom : 4px; border-bottom : white 2px solid; } .element_menu a { text-decoration : none; color : white; text-align : left; } .element_menu a:hover { background-color : white; text-decoration : underline; color : black; } #corps { margin-left : 140px; margin-bottom : 20px; padding: 8px; padding-left : 12px; background-color : black; border : white 2px solid; } #pied_de_page { padding:5px; text-align : center; background-color : black; border : white 2px solid; } .anodin { width: 80%; -moz-border-radius : 50px ; background-color: #f8f8f8; }
Pour le positionnement, le problème de compatibilité venait des margins et de la hauteur du <ul> de la barre de navigation.
En effet, les margins sont ajoutés les uns aux autres sur certains navigateurs, et fusionnés sur d'autres. il vaut donc mieux travailler avec des paddings.
De plus, le fait de mettre float:right; sur les <li> est très bien, mais a l'inconvénient de passer le <ul> correspondant dans un comportement façon "overflow:visible;". il faut donc le limiter en hauteur, pour que ça soit plus compatible.
Pour les liens en hover, j'ai fait quelques modifications. le fait de passer les <a> en 'display:block;' est la base pour pouvoir avoir des liens qui remplissent les <li>, mais il faut aller jusqu'au bout: - supprimer les padding des <li> afin que le contenu puisse prendre toute la place; -mettre le padding sur le <a> afin qu'il prenne toute la place.
Voilà!
Pour info, le rendu est le même sur Firefox 3.5, IE8, Opera 10, Safari 2.0 et Chrome 2.0