28173 sujets

CSS et mise en forme, CSS3

Bonjour, je rencontre des problèmes de positionnement, voici la maquette de mon site:

http://www.chaylaimmobilier.com/images/Maquette_site.jpg

J'ai donc 4 div, j'ai réussi à positionner le rouge (entete) et le bleu (menu).
J'ai un soucis avec le vert (contenu), l'image de fond doit se répéter sur l'axe y, mais j'ai une ligne blanche entre chaque image Smiley decu , j'ai également un problème pour centrer le menu (<ul class="element_menu">).

Le div "contenu" comprends lui même 2 div, un pour le bandeau à gauche (bandeau_gauche) et un pour le corps (corps_droite), mais ça je ne m'en suis pas encore occupé.

Voici le code xhtml:

<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Strict//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-strict.dtd">
<html xmlns="http://www.w3.org/1999/xhtml" xml:lang="fr" lang="fr">
	<head>
		<title>R. CHAYLA Immobilier - l'Immobilier de Prestige</title>
		<meta http–equiv="Content–Type" content="text/html; charset=iso–8859–1" />
		<link rel="stylesheet" media="screen" type="text/css" title="Design" href="styles.css" />
	</head>
<body>
	<div id="container">
		<div id="en_tete">
		</div>
		<div id="menu">
				<ul class="element_menu">
					<li><a href="page 1.html">Lien 1</a></li>
					<li><a href="page 2.html">Lien plus long essai</a></li>
					<li><a href="page 3.html">Lien 3</a></li>
					<li><a href="page 4.html">Lien 4</a></li>
					<li><a href="page 5.html">Lien 5</a></li>
					<li><a href="page 6.html">Lien 6</a></li>
					<li><a href="page 7.html">Lien 7</a></li>
				</ul>
	   	</div>
	</div>
		<div id="contenu">
			<div id="bandeau_gauche">
			<h1>Bandeau à gauche</h1>
			<p>Lorem ipsum dolor sit amet,<br />
			consectetuer adipiscing elit.</p>
			</div>
			<div id="corps_droite">
				<h1>Corps du site</h1>
					<p>Lorem ipsum dolor sit amet<br />
					Lorem ipsum dolor sit amet, consectetuer adipiscing elit. Ut posuere suscipit neque. Etiam condimentum tortor in libero. Quisque malesuada turpis ut ipsum. Praesent ipsum. Morbi volutpat mauris in erat.</p>
				<h2>Lorem ipsum dolor sit amet, consectetuer adipiscing elit.</h2>   
					<p>Lorem ipsum dolor sit amet, consectetuer adipiscing elit. Ut posuere suscipit neque. Etiam condimentum tortor in libero.<br />
					Lorem ipsum dolor sit amet, consectetuer adipiscing elit. Ut posuere suscipit neque. Etiam condimentum tortor in libero.</p>
				<h2>Lorem ipsum dolor sit amet</h2>   
					<p>Lorem ipsum dolor sit amet, consectetuer adipiscing elit. Ut posuere suscipit neque.<br />
					Lorem ipsum dolor sit amet, consectetuer adipiscing elit. Ut posuere suscipit neque.<br />
					Lorem ipsum dolor sit amet, consectetuer adipiscing elit. Ut posuere suscipit neque.</p>
			</div>
		<div id="pied_de_page">
		</div>
</body>
</html>


Les css:

body {
	margin: 0;
	padding: 0;
	text-align: center;
	background: #F1EFE2;
}

acronym {
	border: none;
}

a {
	text-decoration: none;
}

a:link {
	color: rgb(248,185,28);
}

a:visited {
	color: rgb(255,138,0);
}

a:hover {
	text-decoration: underline;
}

/*DEBUT DU CODE DU MENU */

.element_menu {
	position: relative;
	width: 806px;
	height: 20px;
	margin: 0 auto 20px;
	font-size: 100%;
	text-align: left;
	list-style-type:none;
	text-align:center;
	word-spacing:normal;
}

.element_menu li {
	letter-spacing:normal;
	text-align:center;
	vertical-align:middle;/
	word-spacing:normal;
}

.element_menu a {
	margin:1px;
	width:80px;
	height:20px;
	float:left;
	display:block;
	text-align:center;
	border:none;
	text-decoration:none;
	color:#034B1A;
	background:#F8B91C;
	font-family:Verdana, Arial, Helvetica, sans-serif;
	font-size:10px;
	font-weight:bold;

}

.element_menu a:hover {
	background:#D7AD18;
	border:none; 
}

.element_menu a:active {
	background:#D7AD18;
	border:none; 
}

/*FIN DU CODE DU MENU*/

#container h3 {
	margin: 0;
	padding: 0;
}

#container  {
	width: 806px;
	margin: 10px auto;
	padding: 0;
}

#en_tete {
	background: url("images/entete.gif") 0 0 no-repeat;
	height: 206px;
	width: 806px;
}

#menu {
	background: url("images/menu.gif") 0 0 no-repeat;
	width: 806px;
	height: 41px;
	margin: 0;
	padding: 0;
}

#contenu h1 {
	margin: 0;
	padding: 0;
}

#contenu h2 {
	margin: 0;
	padding: 0;
}

#contenu {
	background-image: url("images/fondpage.gif");
	background-repeat: repeat-y;
	width: 806px;
	margin: 0;
	padding: 0;
}


Merci par avance pour votre aide.
Modifié par Beno (07 Apr 2006 - 11:55)
Administrateur
Hello et bienvenue ici,

Comme tu es dans le salon CSS, tu dois te douter que la grande majorité des sujets ici (voire tous) traitent de "Problèmes de positionnement".

Ton sujet va donc malheureusement vite se perdre dans la masse, tout simplement parce que tu ne donnes pas assez de précision dans ton titre Smiley decu
Je t'invite à le modifier de façon pertinente pour avoir plus de chances Smiley cligne
Bonjour,

Tu n'as pas ta maquette en ligne ?
Ou l'image que tu veux pour ton background avec repeat-y ?

Ton code css pour #contenu me semble correct, j'ai donc un doute sur l'image Smiley cligne
salut.
.element_menu a {

	margin:1px;

	width:806px;

	height:20px;
}

Tu es sur de ces valeurs ?
806px de large sans float pour li?
jp94 a écrit :
salut.
.element_menu a {

	margin:1px;

	width:806px;

	height:20px;
}

Tu es sur de ces valeurs ?
806px de large sans float pour li?


Ben en fait, 806px, c'est la largeur de l'image de fond du menu, et du reste du site également d'ailleurs. Mais je ne maitrise pas encore ces notions de positionnement Smiley rolleyes

J'ai mis la maquette en ligne:
http://chaylaimmobilier.com/site2.0/index.html

Il y a un paquet de problèmes, nottament des différences assez importantes entre IE et FF que je n'arrive pas à résoudre.

Encore merci pour votre aide.
Modifié par Beno (06 Apr 2006 - 16:10)
Bah, déjà, je te conseil de travailler sous FF, pour avoir un CSS le plus proche possible des normes W3C.

Ensuite, tu feras des "hacks" (ex : !important ) ou une feuille spécial pour IE avec un commentaire dans le "head" du style :


    <!--[if lte  IE 6]>
     <link rel="stylesheet" type="text/css" href="ie.css">
    <![endif]-->


Maintenant, en ce qui concerne le repeat, déjà, si la largeur est fixe, tu n'as pas besoin de préciser le "repeat-y" (même si ça fait plus conventionnel), et je serais de l'avis de g41687, essais de vérifier si l'image est correcte.

Parfois, il se peut qu'elle soit correct sous le logicile, mais plus aprés enregistrement (je parle notamment des problèmes avec les Gifs et l'effet de transparence, parfois, il y a une bordure blanche autour lorsqu'on fait "enregistrer pour le web" alors qu'il n'y en a pas lorsqu'on fait "enregistrer sous"...donc vérifie les paramètres lors de l'enregistrement.)

Pour le menu, le listing ne me semble pas nécéssaire, de plus, pour le centrer, dans "élément_menu", tu as mis "text-align : left" puis dans "element_menu li" tu as mis "text-align : center"...qu'elle est utilité ?

Une petite question, pourquoi ne pas avoir mis "contenu" dans le "container" ? (simple curiosité, ceci dit, ce n'est pas forcment une erreur. ^^ )

P.S. : J'ai testé ton image dans une page web, et j'ai le même problème que toi, donc, ca doit effectivement venir de ton image. ^^
Modifié par TheReverendEVIL (06 Apr 2006 - 16:38)
Modérateur
bonjour,

ta marge entre #container et #contenu est indique dans le css.

#container  {
	width: 806px;
	margin: 10px auto;/* ici une marge haute et basse de 10 pixels */
	padding: 0;
}


ensuite pour positionné ton #contenu, re-marge :
	margin: 0 auto;
au lieu de
	margin: 0;

Puis tu peut utiliser les marges interieurs pour repositionner tes textes dans #contenu:

	width: 726px;
	padding: 10px 40px;


Remarque que les marges de 40 pixels à droite et à gauche sont deduites de la largeur dans le css, au total, tu retrouve 40 + 706 + 40 = 806 pixels de largeur total de la balise.

Cela devrait te faire avancé un peu. ++


<edit> pour les hacks, perso, je m'en sert au moment de debugger, c'est plus rapide, mais il est preferable de les repasser comme tu le fait dans un css separé avec les commentaires conditionnels, on melange pas les torchons avec les serviettes , zut alors Smiley smile ++, non serieux c'est plus propre est par la suite la maintenance peut se faire plus aisement, pas besoin de partir a la chasse aux hacks divers et variés dans le css ou alors il faut penser a les regroupés ... Smiley smile </edit>
Modifié par gcyrillus (06 Apr 2006 - 16:42)
gcyrillus a écrit :
bonjour,

<edit> pour les hacks, perso, je m'en sert au moment de debugger, c'est plus rapide, mais il est preferable de les repasser comme tu le fait dans un css separé avec les commentaires conditionnels, on melange pas les torchons avec les serviettes , zut alors Smiley smile ++, non serieux c'est plus propre est par la suite la maintenance peut se faire plus aisement, pas besoin de partir a la chasse aux hacks divers et variés dans le css ou alors il faut penser a les regroupés ... Smiley smile </edit>


Tout a fait d'accord ^^

Sinon, pour l'image, j'ai testé un recadrage, et plus de problème...donc tu sais ce qu'il te reste a faire. Smiley lol
Modifié par TheReverendEVIL (06 Apr 2006 - 16:53)
Merci à vous, pour le problème des lignes blanches sur l'image de fond, c'était bien au niveau de l'image elle-même... Smiley confused
J'étudie vos conseils