28172 sujets

CSS et mise en forme, CSS3

Bonjour,

Je cherche à faire une mise en page d'un menu avec display:table (comme expliqué dans CSS avancées Vers HTML5 et CSS3).

Alors voici ce mon html (extrait):

<!doctype html>
<html lang="fr">
	<head>
		<meta charset="UTF-8" />
		<link rel="stylesheet" href="style.css">
	</head>
	<body>
		<div id="header">
			<div id="title">
				<h1>Titre</h1>
				<h2>Sous Titre</h2>
			</div>
			<img src="images/image.gif" alt="Image" />
		</div>
		<div id="main">
			<div id="content">
				<ul id="menu">
					<li>Lien 1</li>
					<li>Lien 2</li>
					<li>Lien 3</li>
					<li>Lien 4</li>
					<li>Lien 5</li>
				</ul>
				<p>(...)</p>
			</div>
		</div>
	</body>
</html>


Voici ma partie CSS :

body {
	background-color: #00DDEE;
	text-align: center;
	width:100%;
	height:auto;
	text-align:center;
}
#header {
	background-color: #00FF00;
	display:table;
	margin-left:auto;
	margin-right:auto;
	border-collapse:separate;
	border-spacing:4px;
	width:80%;
}
#title {
	background-color: #EE00FF;
	display:table-cell;
	width:75%;
	vertical-align:middle;
	text-align:left;
	padding-left:8%;
	color: #FFFFFF;
}
#title > h1 {
	background-color: #AA00DD;
	margin-bottom:0;
}
#title > h2 {
	background-color: #FFAADD;
	margin-top:0;
}
#header > img {
	margin-left:auto;
	margin-right:auto;
	display:table-cell;
	padding:1em;
	background-color: #AA00DD;
}
#main {
	margin-left:auto;
	margin-right:auto;
	padding-top:0.5em;
	padding-right:3%;
	padding-left:3%;
	width: 74%;
	background-color: #EE00AA;
}
#menu {
	border-collapse: separate;
	/*border-spacing:1px;*/
	padding:0;
	border:0;
	background-color: #EE0000;
}
#menu > li {
	padding:0;
	border:0;
	margin:0;
	width: 10%;
	display:table-cell;
	background-color: #AA00AA;
}


Je vais expliquer en tentant d'être aussi clair que possible.
Mon problème se situe dans le css au niveau de #menu > li, la propriété width. Je veux mettre cette propriété en % (afin d'être un minimum web Responsive).
Je utilisé une mise en page avec display:table.
Mais le width ne fonctionne pas comme je le désire. Surtout, je ne comprends pas sur quoi se base son fonctionnement.
Lorsque j'augmente le pourcentage de la valeur width de #menu > li, la largeur de mes li diminue ! et vise versa. A en devenir fou Smiley nut !
Je peux bien trouver une solution "bricolée" en recherchant un pourcentage qui s'affiche correctement ou en tentant une autre mise en page (float, display:inline-block...) mais je veux comprendre pourquoi ma mise en page réagi de la sorte.

Merci,
Bien à vous qui m'avez lu,
Barthou upload/49741-widhtSurLi.png
si tes li sont en display:table-cell; il faut que ton ul soit en display:table + width pour avoir un code cohérent.

++
Salut gc-nomade,

Effectivement, en précisant display:table et en appliquant un width, ça fonctionne parfaitement.

Merci.