J'essaie actuellement d'aligner ma barre de navigation à droite, mais elle reste obstinément à gauche et je ne sais pas quoi faire. J'ai l'impression que j'ai tout essayé - alignement de texte, float, etc. J'ai également la réinitialisation de HTML5 CSS, si cela fait une différence.
Quelqu'un peut-il consulter mon code et me faire savoir s'il peut y avoir une raison pour que ces éléments de navigation ne se déplacent pas de l'autre côté? Je suis vraiment frustré. Merci.
HTML:
<ul>
<li><a href="index.html">Home</a></li>
<li><a href="company.html">Company</a></li>
<li><a href="team.html">Management Team</a></li>
<li><a href="contact.html">Contact</a></li>
</ul>
CSS:
body {font: normal 300 .8em 'Open Sans', sans-serif; overflow-x: hidden;}
ul {text-align: right; width: 100%; background-color: #999; height: 20px; padding- left: 150px;}
li {float: left;}
ul a {color: white; padding: 0 10px; text-decoration: none;}
ul a:hover {color: #333;}
NOTE: C’est la façon dont je viens de le réparer
ul {text-align: right; width: 100%; background-color: #999; height: 20px; **padding-left: 750px;**}
cependant, je ne suis pas sûr que ce soit un très bon moyen de le faire ...
Une solution, certes assez stupide (mais qui fonctionne), consiste à placer les éléments de la liste à droite, puis à inverser leur ordre en HTML. Comme ça:
<ul>
<li><a href="contact.html">Contact</a></li>
<li><a href="team.html">Management Team</a></li>
<li><a href="company.html">Company</a></li>
<li><a href="index.html">Home</a></li>
</ul>
body {font: normal 300 .8em 'Open Sans', sans-serif; overflow-x: hidden;}
ul {text-align: right; width: 100%; background-color: #999; height: 20px;}
li {float: right;}
ul a {color: white; padding: 0 10px; text-decoration: none;}
ul a:hover {color: #333;}
C'est facile
remplacez li float
par display:inline;
body {
font: normal 300 .8em'Open Sans', sans-serif;
overflow-x:hidden;
}
ul {
text-align: right;
width: 100%;
background-color: #999;
height: 20px;
}
li {
display:inline;
}
ul a {
color: white;
padding: 0 10px;
text-decoration: none;
}
ul a:hover {
color: #333;
}
Changer cette ligne dans le CSS:
ul {text-align: right; width: 100%; background-color: #999; height: 20px; padding-left: 150px;}
Pour ça:
ul {float: right; background-color: #999; height: 20px; padding- left: 150px;}
Le problème est que votre code d'origine définissait la largeur à 100%. Donc, il s'étendait à travers l'écran. text-align
ne ferait pas flotter les éléments <li>
intérieurs vers la droite. Donc, le seul moyen de réussir consiste à supprimer le width: 100%;
et à définir un float: right;
Si vous souhaitez une zone grise sur la page, enveloppez le <ul>
dans un <div>
comportant les background-color: #999;
et width:100%
. Seul moyen d'y aller.
Voici le fichier HTML que j'ai créé pour démontrer:
<!DOCTYPE html>
<html lang="en">
<head>
<title></title>
<style type="text/css">
body {font: normal 300 .8em 'Open Sans', sans-serif; overflow-x: hidden;}
ul {float: right; background-color: #999; height: 20px; padding- left: 150px;}
li {float: left;}
ul a {color: white; padding: 0 10px; text-decoration: none;}
ul a:hover {color: #333;}
</style>
</head>
<body>
<ul>
<li><a href="index.html">Home</a></li>
<li><a href="company.html">Company</a></li>
<li><a href="team.html">Management Team</a></li>
<li><a href="contact.html">Contact</a></li>
</ul>
</body>
</html>
EDIT: Fichier HTML de test supplémentaire pour afficher le concept d'emballage <div>
. Ça marche pour moi.
<!DOCTYPE html PUBLIC "-//W3C//DTD HTML 4.01//EN">
<html lang="en">
<head>
<title></title>
<style type="text/css">
body
{
font: normal 300 .8em 'Open Sans', sans-serif;
overflow-x: hidden;
}
div
{
float: left;
width: 100%;
background-color: #999;
}
ul
{
float: right;
background-color: #999;
height: 20px;
padding- left: 150px;
}
li { float: left; }
ul a
{
color: white;
padding: 0 10px;
text-decoration: none;
}
ul a:hover { color: #333; }
</style>
</head>
<body>
<div>
<ul>
<li><a href="index.html">Home</a></li>
<li><a href="company.html">Company</a></li>
<li><a href="team.html">Management Team</a></li>
<li><a href="contact.html">Contact</a></li>
</ul>
</div>
</body>
</html>
Je suggère que le code ci-dessous facilite l'application du style:
HTML:
<div class="nav">
<ul>
<li><a href="index.html">Home</a></li>
<li><a href="company.html">Company</a></li>
<li><a href="team.html">Management Team</a></li>
<li><a href="contact.html">Contact</a></li>
</ul>
</div>
CSS:
body {
font: normal 300 .8em 'Open Sans', sans-serif;
overflow-x:hidden;
}
.nav {
overflow: hidden;
background-color: #999;
height: 20px;
}
ul {
overflow: hidden;
float: right;
}
ul li {
float: left;
}
ul li a {color: white;
padding: 0 10px;
text-decoration: none;
}
ul li a:hover {
color: #333;
}
Voir le code snippé http://jsfiddle.net/sophy/eRLtw/
Je ne sais pas si vous avez déjà réglé cela, mais vous pourriez essayer ceci ...
ul {
display:block;
width:100%;
margin:0;
padding:0;
text-align:right;
}
ul li {
display:inline-block;
}
Ensuite, choisissez le type de rembourrage souhaité, etc.
Peut faire l'affaire sans se soucier des flotteurs.
Dan
ul {float:right;}
Ne donnez pas au ul une largeur et vous obtiendrez exactement ce que vous cherchez.