28173 sujets

CSS et mise en forme, CSS3

Bonjour,

Tout d'abord je poste le contenu de mon fichier index.php ainsi que mon css pour vous expliquer mon problème


<!DOCTYPE html>
<html>
<head>
<meta charset="utf-8" />
<link rel="stylesheet" href="css/global.css" />
<!--[if lt IE 9]>
	<script src="http://html5shiv.googlecode.com/svn/trunk/html5.js"></script>
<![endif]-->
<script src="javascript/jquery.js" type="text/javascript"></script>
<script src="javascript/functions.js" type="text/javascript"></script>
</head>

<body>

	<div id="conteneur">
	
		<div id="logo">
			<img alt="logo" src="images/logo2.png">
		</div>

		<!-- HEADER -->

		<div id="header">
			<?php include('/includes/header.inc.php'); ?>
		</div>
		
		<div id="sousMenu">
			<?php include('/includes/sousMenu.inc.php'); ?>
		</div>

		<!-- END HEADER -->
		
		<!-- CONTENU -->

		<div id="contenu">
			<h1>ICI LE TITRE DE L'ARTICLE</h1>
			<p>
				The tag is used to group inline-elements in a document.The tag
				provides no visual change by itself.<br> When the text is hooked
				in a element you can add styles to the content, or manipulate the
				content with for example JavaScript. <br>The tag is used to group
				inline-elements in a document.The tag provides no visual change by
				itself.<br> When the text is hooked in a element you can add
				styles to the content, or manipulate the content with for example
				JavaScript. <br>The tag is used to group inline-elements in a
				document.The tag provides no visual change by itself.<br> the
				text is hooked in a element you can add styles to the content, or
				manipulate the content with for example JavaScript. e text is
				hooked in a element you can add styles to the content, or
				manipulate the content with for example JavaScript.
			</p>
		</div>
		
		<div id="footer">
			<?php include('/includes/footer.inc.php'); ?>
		</div>

	</div>

</body>
</html>




html {
	margin: 0;
	padding: 0;
	background: url("../images/BG.JPG") no-repeat center fixed;
	-webkit-background-size: cover; /* pour Chrome et Safari */
	-moz-background-size: cover; /* pour Firefox */
	-o-background-size: cover; /* pour Opera */
	background-size: cover;
	-webkit-background-size: cover; /* version standardis&#65533;e */
	height: 100%;
}

body {
	margin: 0;
	padding: 0;
	overflow-x: hidden;
	height: 100%;
}

#conteneur
{
	min-height:100%;
	position: relative;
}

/***************************************************************/
/******************************************** Logo 
/***************************************************************/

#logo{
	position: absolute;
	top: -38px;
	left: 14%;
}

/***************************************************************/
/******************************************** Header 
/***************************************************************/
#header {
	background-color: #52321a;
	margin-left: 17%;
	width: 70%;
	margin-top: 3%;
	/* Arrondi */
	-webkit-border-bottom-right-radius: 10px;
	-webkit-border-top-right-radius: 10px;
	-moz-border-radius-bottomright: 10px;
	-moz-border-radius-topright: 10px;
	border-bottom-right-radius: 10px;
	border-top-right-radius: 10px;
}

#header nav ul {
	list-style-type: none;
	text-align: right;
	padding-bottom: 10px;
	padding-top: 10px;
}

#header nav li {
	display: inline-block;
	padding-right: 20px;
}

#header nav a {
	text-decoration: none;
	color: #FFFFFF;
	font: 15px/15px 'sansationbold', verdana, arial, helvetica, sans-serif,
		sans;
}
/***************************************************************/
/******************************************** Contenu 
/***************************************************************/
#contenu {
	background-color: #FFFFFF;
	opacity: 0.9;
	margin-top: 12%;
	width: 72%;
	margin-left: 15%;
}

#contenu h1 {
	text-align: center;
	color: #916837;
	font: 40px/40px 'sansationbold', verdana, arial, helvetica, sans-serif,
		sans;
	size: 1.3em;
}

/***************************************************************/
/******************************************** Footer 
/***************************************************************/
#footer {
	width: 100%;
	position: absolute;
	bottom: 0;
	background-color: #52321a;
	border-top: #7b4821 solid 6px;
}

#footer p {
	color: #FFFFFF;
	size: 14px;
	text-align: center;
	padding-bottom: 10px;
	font: 12px/12px 'sansationbold', verdana, arial, helvetica, sans-serif,
		sans;
}


Voici ce que cela donne sur Firefox, Chrome ou IE (le résultat est identique) :

http://hpics.li/21b6500

J'ai mis un lien vers un hébergeur d'image car la fonction "Joindre une image" me retourne une erreur à chaque fois que j'essaye Smiley confus .

Pour en revenir à mon problème : étant donné que mon contenu est en min-height:100% et qu'il prend donc toute la hauteur de la page j'ai suivi cette astuce pour placer mon footer en bas de page : http://www.alsacreations.com/astuce/lire/22-comment-positionner-un-texte-ou-un-bloc-au-bas-dun-conteneur.html

Hors j'ai toujours une barre de scroll vertical et je ne comprends pas pourquoi Smiley confus . Pourtant j'ai regardé avec l'outil de développement de Chrome et il n'y a pas de margin ou autre qui vient "pousser" mon footer.

Je ne sais vraiment pas ce qui cause ce problème, si quelqu'un a une idée je suis preneur.

Bonne reprise de semaine,

JW
Modifié par John Wayne (16 Dec 2012 - 19:34)
Salut

Merci pour ta réponse. J'ai du mal m'expliquer, en effet je ne veux pas faire disparaître cette barre de scroll mais je voudrais pourquoi elle s'affiche car elle n'a aucune raison d’apparaître Smiley smile

Merci
Si, c'est normal, dans la mesure où :
1 - tu déclares que ta balise html à pour hauteur: height=100% (soit une dimension max quelque soit la résolution d'écran)
ET
2 - tu affectes une hauteur height=100% à ton body qui prend pour valeur 100% de la hauteur du parent (html).
Modifié par rodolpheb (17 Dec 2012 - 08:46)
Il s'agit du phénoméne de "fusions de marge" (marge d'1em par défaut des titrages, paragraphes, ...) qui, dans ton cas se reportent a l’extérieur des éléments parent.
Tu ne les réinitialises pas.
Les conteneurs de second niveaux, qui les contiennent, sont dépourvus de margin/padding ou border pour contenir et fusionner ces marges.

Pour voir les effets et visualisé ces effets de fusion de marge, testes au choix :
#conteneur > div {margin:0;}

ou
#conteneur {padding:1px;}

ou
#conteneur  {border:solid 1px}


++
@gc-nomade, je pense que tu as répondu au mauvais endroit. Smiley smile

-----désolé erreur de ma part------
Modifié par rodolpheb (17 Dec 2012 - 15:37)
rodolpheb a écrit :
Si, c'est normal, dans la mesure où :
1 - tu déclares que ta balise html à pour hauteur: height=100% (soit une dimension max quelque soit la résolution d'écran)
ET
2 - tu affectes une hauteur height=100% à ton body qui prend pour valeur 100% de la hauteur du parent (html).


Merci rodolpheb pour votre réponse rapide. Cependant votre réponse me fait penser à deux solutions (si j'arrive à cerner le problème correctement) :

- Il faut que j'enlève le height=100% de mon body étant donné qu'il hérite de html ?
- Ou alors il faut que je modifie le 100% à mon height pour qu'il soit à 95/96% (par exemple) ?

Merci
Modifié par John Wayne (17 Dec 2012 - 09:34)
rodolpheb a écrit :
@gc-nomade, je pense que tu as répondu au mauvais endroit. Smiley smile

Pas vraiment, non. La réponse de gc-nomade est pertinente, contrairement à la tienne.

Pour s'en convaincre, il suffit de tester :
<!DOCTYPE html>

<meta charset="UTF-8">
<title></title>

<style>

html, body { height: 100%; margin: 0; padding: 0; }
/* Enlever les commentaires pour faire disparaître la barre de défilement */
/*div { padding: 1px; }*/

</style>

<div><p>HOHO</p></div>
Merci Julien Royer pour ta remarque mais je viens de tester ce que tu as posté et je n'obtiens aucun changement (un scroll toujours).

Donc pas convaincu...
rodolpheb a écrit :
Merci Julien Royer pour ta remarque mais je viens de tester ce que tu as posté et je n'obtiens aucun changement (un scroll toujours).

Donc pas convaincu...

Tu as testé avec Netscape 2 ? Smiley smile
Bonjour,

@gc-nomade : merci, votre solution a résolue mon problème Smiley smile

Par contre c'est moi qui ai fait une boulette, en effet mon footer doit être en position relative et non absolute car le contenu a une taille qui peut varier hors si j'utilise un position absolute sur mon footer il restera toujours au même endroit.

De ce fait si je mets :


#footer {
	width: 100%;
	position: relative;
	bottom: 0;
	background-color: #52321a;
	border-top: #7b4821 solid 6px;
}


Étant donné que j'ai enlevé min-height:100% de contenu le footer remonte vers le milieu de la page vu que le bloc contenu se termine vers le milieu de page. Voici ce que cela donne :

http://hpics.li/0867c1d

C'est pas gagner Smiley biggol

Merci
Modifié par John Wayne (17 Dec 2012 - 11:41)
John Wayne a écrit :
Bonjour,

@gc-nomade : merci, votre solution a résolue mon problème Smiley smile


De rien , quand tu as un peu de temps , fais quelque recherche et teste sur les "fusions de marges", ça explique bien des choses qui paraissent bizarre Smiley smile .
John Wayne a écrit :

Par contre c'est moi qui ai fait une boulette, en effet mon footer doit être en position relative et non absolute car le contenu a une taille qui peut varier hors si j'utilise un position absolute sur mon footer il restera toujours au même endroit.

Pas vraiment , il suivra le bas de son parent référent, avec absolute ta première démarche était la bonne.
Mais il faut aussi lui dégager de l'espace.
Si ton #footer fait 100px de hauteur , alors met 100px de padding-bottom à #contenu et ton #footer ne pourra plus remonter dessus
John Wayne a écrit :

si je mets :


#footer {
	width: 100%;
	position: relative;
	bottom: 0;
}


position:relative; dans ton cas ne sert a rien.
John Wayne a écrit :

Étant donné que j'ai enlevé min-height:100% de contenu le footer remonte vers le milieu de la page vu que le bloc contenu se termine vers le milieu de page.

Garde le ce min-height:100%;position:relative; sur #conteneur et place ce padding-bottom sur #contenu pour dégager de la place pour #footer en position:absolute.

Cdt,

GC
Merci tout marche très bien Smiley smile J'ai pu lire le très bon article d'alsacréation concernant la fusion des marges (http://www.alsacreations.com/article/lire/629-fusion-des-marges.html).

Par hasard sauriez vous pourquoi lorsque la barre de scroll vertical apparaît (c'est le cas pour mon livre d'or qui contient plusieurs message) cette dernière vient décaler l'image en arrière plan et laisse une fine bordure blanche à droite ?

Voici de quoi je parle : http://hpics.li/2713629

Du coup lorsque l'on passe sur une page ou la barre de scroll vertical apparaît sa redimensionne légèrement l'image et ce n'est pas très agréable.

Merci pour vos conseils Smiley cligne