Pages :
Salut à tous !

Bon alors je précise dès le départ : je suis super ultra débutante donc je risque de poser des questions qui pourraient vous paraître ridicules, mais... c'est pas grave, j'essaye d'apprendre !!

Alors voilà : pour apprendre un design en xhtml et css, j'ai essayé de reproduire votre tutoriel "Design XHTML/CSS complet avec 2 colonnes de même hauteur" (http://www.alsacreations.com/tuto/lire/564-Design-XHTML-CSS-complet-avec-2-colonnes-de-meme-hauteur.html)

Ca m'a permis d'avoir une première approche (j'ai déjà créé un site web, mais avec la technique des tableaux, donc là les positions sont un système tout nouveau pour moi...), et d'apprendre déjà quelques petites choses, mais je suis encore vachement dans le flou.

Bref pour le moment j'ai quelques petits soucis pour terminer le tuto...

D'abord, moi j'ai pas de ligne verte verticale pour la séparation entre mon contenu et mon menu, sauriez-vous où j'ai fait une erreur ?

Voici mon code html :
<!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>Création d'un design étape par étape - Etape n°1 : Le code xhtml</title>
		<meta http-equiv="Content-Type" content="text/html; charset=iso-8859-15" />
		<meta http-equiv="Content-Style-Type" content="text/css" />
		<meta http-equiv="Content-Language" content="fr" />
		<link rel="stylesheet" type="text/css" href="css/main.css" media="screen" />
		<link rel="stylesheet" type="text/css" href="css/menu.css" media="screen" />
		<!--[if lte IE 6]>
		<link rel="stylesheet" type="text/css" href="css/ie.css" media="screen" />
		<![endif]-->
	</head>

<body>
<div id="global">
			<div id="header">
				<h1>2cols4u</h1>
			</div>
			<div id="center">
				<div id="content">
					<h2>Etape 1 : le code XHTML</h2>
					<p>Vous trouverez ci-dessous le code de la page HTML que vous êtes en train de lire. Et oui, malgré l'absence de feuille de style, la page est déjà lisible ! Les liens fonctionnent, les titres sont mis en évidence, les listes structurées, etc.</p>
					<p>La page est divisée horizontalement en trois parties distinctes :</p>
					<ol>
						<li>l'en-tête (identifié par "<em>header</em>"), destiné à accueillir la bannière et éventuellement une devise ou slogan.</li>
						<li>la partie centrale ("<em>center</em>", bien vu !) contiendra les deux colonnes qui nous intéressent. Elle comprend donc elle-même 2 zones distinctes (les divisions <em>sidebar</em> et <em>content</em>).</li>
						<li>le pied de page ("<em>footer</em>") comprend diverses informations que l'on souhaite afficher discrètement sur toutes les pages, en général des mentions de copyright ou les coordonnées & références de la société ...</li>
					</ol>	
				</div>
				<div id="sidebar">
					<h3>Navigation</h3>
					<ul id="menu">
						<li><a href="./" title="Introduction">Introduction</a></li>
						<li><a href="etape1.html" title="Première étape : le code (X)HTML">Etape 1</a></li>
						<li><a href="etape2.html" title="Deuxième étape : le positionnement">Etape 2</a></li>
						<li><a href="etape3.html" title="Troisiéme étape : couleurs & images de fond">Etape 3</a></li>
						<li><a href="etape4.html" title="Quatrième étape : le menu">Etape 4</a></li>
						<li><a href="etape5.html" title="Cinquième étape : titres & liens">Etape 5</a></li>
						<li><a href="etape6.html" title="Sixième étape : ajustements pour IE">Etape 6</a></li>
					</ul>
					<h3>Brèves</h3>
					<p>Pourquoi j'aime les standards du W3C ? Pour <a href="http://openweb.eu.org/articles/pourquoi_standards/" title="Openweb : Pourquoi les standards du W3C">ça</a></p>
					<h3>Liens</h3>
					<ul>
						<li><a href="http://www.alsacreations.com" title="AlsacréationS apprendre XHTML, les CSS et les standards W3C de la conception Web">Alsacréations</a></li>
					</ul>
				</div>
			</div>
			<div id="footer">
				<p>Je suis un pied de page. Et comme disait Groucho Marx, si vous n'aimez pas mes opinions, j'en ai d'autres.</p>
			</div>
		</div>

</body>
</html>


Ma feuille CSS "main" :
html, body 
{
	height: 100%;
	margin: 0;
}
html {
	background: #ddd url(img/fond.png);
	}
	body
{
	margin: 10px 0 ;
	padding: 0 ;
	text-align: justify ;
	font: 90% "Trebuchet MS", sans-serif ;
	background: #ffffff ;
}
div#global 
{
	height: 100%;
	width: 750px;
	padding: 0 10px;
	margin: 0 auto;
	position: relative;
	padding: 0 10px;
	background: url(img/global.png) center repeat-y;
}
div#header 
{
	background: #7fcf2e url(img/header.jpg) no-repeat;
	color: #fff;
	height: 201px;
	position: relative;
}
div#header h1 
{
	margin: 0;
	position: absolute;
	bottom: 10px;
	left: 30px;
	font: 3em Georgia, serif;
}
div#center 
{
	padding-bottom: 50px; 
	overflow: auto;
}
div#footer 
{
	position: absolute;
	width: 100%;
	bottom: 0;
	background: #7fcf2e url(img/footer.png) repeat-x;
	color: #fff;
}
div#footer p 
{
	margin: 2px 0;
	font-size: 0.9em;
}
div#sidebar h3, div#footer p, div#sidebar p  
{
	padding: 0 10px;
}
div#content 
{
	float: right;
	width: 530px;
	margin-left: 10px;
}
div#content h2 
{
	padding-left: 35px;
	background: #fff url(img/titre.png) left center no-repeat;
	color: #6c0;
}
div#content h3 
{
	color: #c00;
	font-variant: small-caps;
}
div#sidebar 
{
	float: left;
	width: 200px;
}
a 
{
	color: #6c0;
	font-weight: bold;
}
a:hover 
{
	color: #c00;
}


Ma feuille CSS "Menu" :
ul#menu 
{
	margin: 0;
	padding: 0;
	list-style: none;
}
ul#menu li a 
{
	display: block;
	height: 30px;
	line-height: 30px;
	background: url(img/fond_lien.png) no-repeat left top;
	padding-left: 35px;
	margin: 2px 0;
	border-bottom: 1px solid #7fcf2e;
	color: #390;
	font: small-caps 1.1em/30px Georgia,serif;
	text-decoration: none;
}
ul#menu li a:hover 
{
	background-position: left bottom;
	color: #c30;
}


Mon CSS "ie.css" :
/* CSS Document */
#global{
	height: 100%;
	}
#center {
	overflow: visible;
	height: 1%;
	}
#content, #sidebar {
	margin-top: 15px;
	}
#global {
	background: none;
	filter:progid:DXImageTransform.Microsoft.AlphaImageLoader(src="css/img/global.png", sizingMethod="scale");
	}
#global {
	position: static;
	}
a, pre {
	position: relative;
	}
body {
	position: relative;
	}


Mon autre problème, c'est le footer... Il n'est toujours pas bien placé (IE ou Firefox, même chose), il est un peu trop haut... J'ai dû faire une erreur quelque part, mais je ne vois pas ! Est-ce que vous sauriez me guider ?

Merci beaucoup pour votre aide précieuse, promis je vais essayer de m'améliorer Smiley lol
A bientôt,
Linoa

Modifié par Linoa (03 Mar 2009 - 22:30)
Bon ça y est, j'ai trouvé l'erreur pour le pied de page : dans "div#global", j'ai remplacé "height" par "min-height". Maintenant c'est ok pour IE7 et Firefox.

Par contre ma page c'est du n'importe quoi sur IE6, malgré le correctif css que j'ai inséré (ceci dit, le footer est bien placé, lui)...
Bonjour Linoa,

Peux-tu nous mettre une page de test en ligne ? C'est difficile de t'aider sans avoir le problème sous les yeux Smiley cligne
Hello Thomas,

Merci beaucoup pour ta réponse.

Voici mon premier test du tutoriel : http://coursmci.free.fr/

Comme tu pourras voir, j'ai aussi un problème avec les images qui ne s'affichent pas... J'ai voulu tester avec l'image de fond, en changeant "url" par "http://coursmci.free.fr", mais l'image ne s'affiche pas. Je ne dois probablement pas faire comme il faudrait... Du coup j'ai laissé tomber pour les autres images, sinon ça me retire le vert, comme s'il y avait effectivement une image, mais blanche.

Merci d'avance pour ton aide ^^
Re.

Pour les images, tu ne dois pas remplacer url dans la feuille de style, ça fait partie de la syntaxe CSS :
background: url(chemin/vers/mon/image.jpg) center center no-repeat scroll;
Si le fond devient blanc, c'est parce que tu as fait une erreur de syntaxe, que le navigateur n'arrive pas à lire l'instruction CSS et qu'il l'ignore Smiley cligne

La ligne verte verticale fait partie de l'image de fond sur #global, c'est normal qu'elle n'apparaisse pas si tu as viré les images de fond (voir plus haut).

Pour le positionnement du footer, il faut supprimer la marge verticale sur l'élément body: tu lui as donné une hauteur de 100%, si tu ajoutes des marges en plus, il devient plus grand que l'élément html, ce qui se traduit par une barre de scroll indésirable.
body { margin: 0; }

Pour IE6, je ne peux pas t'aider pour l'instant.
Hello !

Merci beaucoup pour ces infos.

Euh alors pour les images, en fait je pensais qu'il fallait remplacer "url" par l'adresse car en laissant url, je ne voyais pas les images. J'ai remis "url", mais même chose, il ne m'affiche pas les images, je dois avoir fait une erreur quelque part... Pourtant si tu regardes sur http://coursmci.free.fr/img, tu trouveras bien les images auxquelles je fais référence dans le css, mais je suppose que je ne dois pas mettre le bon code ?

Impec pour le footer, merci ! ^^
Pour les chemins des images: si tes feuilles de styles sont dans le dossier /css, et que tu as le code suivant:
background-image: url(img/header.jpg);

cela signifie que le navigateur doit récupérer l'image suivante:
http://coursmci.free.fr/css/img/header.jpg
Or ton image est ici:
http://coursmci.free.fr/img/header.jpg
Donc le code CSS devrait être le suivant:
background-image: url(../img/header.jpg);


Notes:
- Je rappelle que les chemins relatifs dans une feuille de styles partent de la feuille de styles et non pas de la page HTML.
- Les deux points successifs (..) permettent, dans un chemin relatif, de remonter d'un niveau.
- Dans cette réponse j'utilise background-image, mais dans ton code c'est peut-être la propriété de raccourci background qui est utilisée.
Smiley lol Je suis définitivement une débutante !
Merci pour ta réponse, c'est en effet logique finalement !

Je dois par contre avoir définitivement un problème avec mon footer : son width est à 100% mais il sort de ma page sur la droite. Smiley sweatdrop

Autre évidence : problème pour mon fond. Mon image de fond ne s'affiche qu'en bas de la page, pile poil à partir du niveau où on doit utiliser la barre de défilement, comme de par hasard ! Sauriez-vous d'où vient ce problème ?

Encore merci Smiley confused
Re !
Alors la seule manière que j'aie trouvée pour avoir mon fond comme je veux, c'est de rajouter background: #ffffff url(../img/fond.png); dans "body", et du coup j'ai enlevé :
html {
	background: #ddd url(img/fond.png);
	}

Vu qu'il ne me sert plus à rien... Quelle est exactement la fonction de ce html ?

En ce cas j'ai mon fond sur IE et Firefox, mais autant dire que sur IE6, la page n'est pas visible en l'état !!

Pour ce qui est du pied de page, je n'ai toujours pas trouvé pourquoi il dépasse sur IE7 et firefox... Pour le coup, il est ok sur IE6 (c'est un comble !).

Merci d'avance pour votre aide précieuse.
Le monologue de Linoa continue Smiley lol

Bon ça y est j'ai compris le problème pour IE6 à priori c'est bon.

Par contre, je sais toujours pas pourquoi mon footer dépasse sur IE7 et Firefox, si quelqu'un a une idée...
Encore moi ^^

Bon alors pour résoudre mon problème de footer, j'ai changé sa position et l'ai mise en "relative". Ma question est la suivante : pour quelle raison sa position est-elle en "absolute" dans le tuto ? Parce que si je veux qu'il fasse 100% de largeur de l'élément "global", il faut qu'il se réfère à lui, non ?

Merci d'avance !
Linoa a écrit :
pour quelle raison sa position est-elle en "absolute" dans le tuto ?
Pour qu'il reste toujours en bas de la page...
Thomas D. a écrit :
Pour qu'il reste toujours en bas de la page...

En gros pour que la page fasse toujours au moins toute la hauteur de la page, même s'il n'y a pas beaucoup de contenu, c'est ça ?

Mais en ce cas, à quoi se réfère le "width: 100%" du footer ? Car si je le mets en "absolute", mon footer est plus large que le reste de ma page, voici ce que ça donne : http://coursmci.free.fr/
Linoa a écrit :
Quelle est exactement la fonction de ce html ?

C'est un sélecteur CSS. Plus précisément, un sélecteur de type qui vise tous les éléments html. Typiquement, dans une page web, tu as un seul élément html, qui contient l'ensemble du document (il a deux enfants: head et body).

Linoa a écrit :
Mais en ce cas, à quoi se réfère le "width: 100%" du footer ?

À la largeur de son plus proche ancêtre positionné. Donc ici à la largeur de div#global.

Linoa a écrit :
Car si je le mets en "absolute", mon footer est plus large que le reste de ma page

Alors sur ta page:
- largeur de div#global: 770px;
- largeur de div#footer: 770px.
Tout ça me semble parfaitement normal.

Rappel: la largeur totale d'un élément comprend le padding et les bordures.
Hello Florent,

Merci beaucoup pour tes explications, je comprends donc la logique.
Du coup est-ce ok si j'établis ma largeur de footer à 750px, au lieu de mettre 100% (puisqu'à 100% ce n'est pas joli) ?
Linoa a écrit :
Du coup est-ce ok si j'établis ma largeur de footer à 750px, au lieu de mettre 100% (puisqu'à 100% ce n'est pas joli) ?

Oui. Avec un left:10px de préférence, pour être explicite.
Merci encore pour ta réponse, Florent.

Par contre, je ne comprends pas pour le left: 10px ? Il sert à quoi ? Je dois le référer à quoi ?
Salut Heyoan,

Pour ce qui est des tutos, j'en ai lu un certain nombre, mais ce n'est forcément pas suffisant pour que je maîtrise le truc. Pour moi rien de mieux que la pratique, c'est pourquoi j'ai fait plusieurs tutos. Pour celui du sujet actuel, j'ai eu plus de problèmes que pour les autres (pourtant j'ai suivi le tuto à la lettre, mais peut-être est-ce fait exprès ?), d'où mes questions ici. D'ailleurs j'ai beaucoup appris grâce aux interventions.

Pour ce qui est de "left" tout seul, je n'ai pas trouvé la réponse car à chaque fois il est lié à "bottom" ou "padding" ou autres.

Maintenant je peux comprendre que mes questions soûlent, peut-être vaut-il mieux que j'aille m'inscrire sur des forums pour débutants.
Salut,
Linoa a écrit :
Maintenant je peux comprendre que mes questions soûlent, peut-être vaut-il mieux que j'aille m'inscrire sur des forums pour débutants.
Je ne pense pas que c'est ce qu'Heyoan veut dire, mais il semble que tu n'as pas encore bien compris les bases du positionnement CSS, il serait certainement bénéfique de potasser attentivement les tutos qu'il te donne en lien. Ça devrait te permettre, entre autres, de comprendre certaines erreurs que tu as commises, et le rôle de la propriété left Smiley cligne
Pages :