28220 sujets

CSS et mise en forme, CSS3

Bonjour à tous.

J'ai un probleme de background qui est plutot enervant.
En faite sous IE, netscape, opera et avant browser tous marche niqeul.
Mais sous firefox cela decalle de 1px.

J'ai appliqué le background au body comme ceci :
body {
	margin:0;
	padding:0;
	color:#000;
	background: url('images/bar_fond.jpg') repeat-y center;
}


Ce code fait repeté l'image jusqu'en bas de la resolution du visiteurs.
Et comme j'ai remi les marge interne et externe a 0 je en voit pas comment je peut regler le probleme.

Après j'ai aussi un block qui englobe tous le corps du site web.
Si j'applique un background sur ce coprs il n'est plus décallé, mais le probleme c'est qu'il ne se repetent pas juqu'en bas de la resolution, mais jusqu'au contenu.

Le code de ce block est :

#global {
	margin:0 auto 0 auto;
	width:771px;
}


Donc voila si vous pouvez m'aidez ca serait vraiment bien.
Merci Smiley smile
Modifié par Omsalam (15 Jul 2005 - 22:51)
a priori, la solution est à chercher du côté de height:100% pour ton body et/ou ton html.

Mais pour t'en dire plus, il nous faudrait le code HTML, ou au moins savoir si ta page est en HTML ou en XHTML.

En effet, l'élément body ne joue pas le même rôle comme "boîte magique" selon que le document est du HTML ou du XHTML, particulièrement pour la propriété background.

(Pour les curieux, les détails sont dans la spec CSS2.1 qui corrige ce point précis de CSS2.0, chez Anne Van Kesteren et chez Charl van Niekerk)
Bonjour.

Je vais essayer de voir ce que je peut faire avec height:100%;
Sinon ma page est en xhtml1.0 strict.

Voila la source :
<!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">
   <head>

<link rel="stylesheet" href="style.css" type="text/css" title="defaut" />
<title></title>
<meta http-equiv="Content-Type" content="text/html; charset=iso-8859-1" />
<meta http-equiv="Content-Language" content="fr" />
 	
   </head>

<body>


	<div id="fond_header">
		<h1 id="header">Senseless</h1>
	</div>

	<div id="global">

		<div id="parti_droite">
			<p class="texte">
			Lorem ipsum dolor sit amet, consectetuer adipiscing elit. Curabitur a wisi sed turpis tristique pharetra. Aenean mauris. Suspendisse potenti. Mauris et velit. Ut mauris felis, sodales sit amet, vulputate ac, viverra in, lectus. Morbi mauris lacus, blandit eget, lobortis in, elementum in, ante. In et tortor. Mauris mollis dignissim leo. Nullam faucibus. Vestibulum pretium libero id sem. Mauris nisl sem, posuere a, adipiscing vitae, tempor a, sem.
			</p>
			<p class="texte">
			Lorem ipsum dolor sit amet, consectetuer adipiscing elit. Curabitur a wisi sed turpis tristique pharetra. Aenean mauris. Suspendisse potenti. Mauris et velit. Ut mauris felis, sodales sit amet, vulputate ac, viverra in, lectus. Morbi mauris lacus, blandit eget, lobortis in, elementum in, ante. In et tortor. Mauris mollis dignissim leo. Nullam faucibus. Vestibulum pretium libero id sem. Mauris nisl sem, posuere a, adipiscing vitae, tempor a, sem.
			</p>
		</div>

		<div id="parti_gauche">
		<img src="images/menu_haut.jpg" alt="" class="block" />
				<h2>Menu 1</h2>
				<div class="menu">
					<ul>
						<li><a href="#">Accueil</a></li>
						<li><a href="#">News</a></li>
						<li><a href="#">Forum</a></li>
						<li><a href="#">Contact</a></li>
					</ul>
				</div>

				<h2>Menu 2</h2>
				<div class="menu">
					<ul>
						<li><a href="#">Exposition</a></li>
						<li><a href="#">Nos travaux</a></li>
						<li><a href="#">Nos idées</a></li>
					</ul>
				</div>
		<img src="images/menu_bas.jpg" alt="" class="block" />
		</div>

	<hr />
	</div>


</body>
</html>


Et je vous donne aussi mon code css entier ca peut peut être vous aider.
body {
	margin:0;
	padding:0;
	color:#000;
	background: url('images/bar_fond.jpg') repeat-y center;
}

/* Block de base */
#fond_header {
	background-image:url('images/fond_header.jpg');
	height:212px;
	width:100%;
}

h1#header {
	background-image:url('images/header.jpg');
	height:212px;
	width:771px;
	text-indent:-9000px;
	margin:0 auto 0 auto;
}

#global {
	margin:0 auto 0 auto;
	width:771px;
}

#parti_droite {
	width: 554px;
	float:right;
	margin:4px 0 0 8px;
}

#parti_gauche {
	background-image:url('images/menu_fond.jpg');
	width:185px;
	float:right;
	margin-top:4px;
}

/* Menu */
.menu {
	width:156px;
	margin-left:-23px;
}

.menu ul {
	list-style-type:none;
}

.menu li {
	background-image:url('images/menu_liste.jpg');
  	width:136px;
	height:19px;
	padding-left:20px;
	margin-bottom:3px; 
}

.menu a{
	color:#fff;
	text-decoration:none;
}

/* Mise en page */
h2 {
	background-image:url('images/menu_titre.jpg');
	background-repeat:no-repeat;
	width:169px;
	height:34px;
	text-align:center;
	font-size:105%;
	color:#736f3f;
	font-weight:normal;
	margin:4px auto 0 auto;
	padding-top:7px;

}

hr {
	clear:both;
	visibility:hidden;
}

.texte {
	border:1px solid #b2b2b2;
	width:510px;
	padding:7px;
	margin:0 0 15px 0;
}

.block {
	display:block;
}


Merci beaucoup Smiley smile
Edit :Tiens je vient de voir que l'indentation est perdu sur ce forum.
Dommage
Modifié par Omsalam (15 Jul 2005 - 10:44)
Hum... Je n'arrive pas à voir ce décalage d'un pixel, désolé Smiley confus

Si ton document est en XHTML, en tous cas, c'est l'élément html et non plus body qui est l'élément magique dont l'arrière-plan s'étend sur la totalité du "canevas" et de la zone d'affichage (voir http://www.w3.org/TR/CSS21/colors.html#q2 )

Tu devrais donc utiliser plutôt :


html {
margin:0;
padding:0;
color:#000;
background: url('fond.png') repeat-y center;
}


en prévoyant d'annuler également les marges et padding de l'élément body pour tout mettre à plat dans tous les navigateurs.
Modifié par Laurent Denis (15 Jul 2005 - 11:19)
Bonjour
A cette règle; le sélecteur html > body ou bien html, body peut-il ajouter une sécurité supplémentaire ?
J'utilise html > body pour xhtml et je n'ai encore jamais rencontré de problème. Bien que, parait-il, le signe ">" ne soit pas pris en compte par certains navigateurs.
Modifié par Aureance (15 Jul 2005 - 13:51)
Aureance a écrit :
Bonjour
A cette règle; le sélecteur html > body ou bien html, body peut-il ajouter une sécurité supplémentaire ?


je ne vois pas vraiment quel rôle pourrait jouer html>body, puisqu'IE n'est pas problématique pour l'application du background à l'élément html. ? Smiley ohwell

Sinon, on peut effectivement combiner les deux blocs avec html,body, mais cela reviendrait à appliquer deux fois le background... Pour les marges et le pading, oui en revanche.

Aureance a écrit :

J'utilise html > body pour xhtml et je n'ai encore jamais rencontré de problème. Bien que, parait-il, le signe ">" ne soit pas pris en compte par certains navigateurs.


Bah, le combinateur > est ignoré par IE, d'où l'utilisation fréquente comme hack pour lui masquer des propriétés CSS. Sinon, ce combinateur ne pose pas de problème, en effet. Smiley smile
Modifié par Laurent Denis (15 Jul 2005 - 15:45)
ah, une chose, quand même, pour éviter une éventuelle confusion : html>body, en dehors du fait de masquer des propriétés à IE, ne sert à rien .

En effet, il veut dire simplement l'élément body qui a pour parent (immédiat) l'élément html. Or, en (X)HTML, c'est nécessairement le cas, et ce sélecteur est donc strictement équivalent à html body Smiley cligne
Edit :
C'est bon j'ai resolu le probleme sous le conseil d'un ami.
Merci à vous.
Modifié par Omsalam (15 Jul 2005 - 22:51)