28172 sujets

CSS et mise en forme, CSS3

Pages :
Bonjour, je souhaite aligner verticalement du texte par rapport à une image au milieu dans une Div. Pour obtenir cet effet, on utilise normalement la balise "img" (css). Mon soucis c'est que je veux seulement obtenir cet effet sur une seule Div (celui de mon menu).
Si j'utilise img l'effet se répercute sur toutes les Div de ma page et c'est pas ce que je veux.
Donc comment puis-je appliquer cette alignement vertical sur une SEULE Div ???
Merci d'avance !
Re',

Alors tout d'abord quelques remarques générales :

XHTML Strict :
- toutes les balises et les attributs doivent être en minuscules. Il faut donc remplacer <IMG SRC="..." par <img src="..."
- toutes les balises et les attributs de mise en forme (<font>, align, border, etc...) sont invalides et doivent être remplacés par du code css (séparation contenu / présentation)
- les balises vides (ou auto-fermantes) comme img doivent être fermées à l'aide de />
- les balises <img> doivent avoir un attribut alt qui donnera une information alternative en cas d'images désactivées.

par exemple, on peut remplacer :
<div id="bannieres">
<IMG SRC="/images/bannieres/banniere2.jpg" BORDER = "0">
</div>
par
[b]HTML[/b]
<div id="bannieres">
<img src="/images/bannieres/banniere2.jpg" alt="Californication Center" />
</div>

[b]CSS[/b]
#bannieres img { border:none; }

CSS
- attention de ne pas avoir la même couleur de background et de texte pour un même élément ( body { background-color: #000000; } ) car en cas d'images désactivées on ne voit plus rien Smiley cligne .
- lorsque 2 déclarations sont identiques on peut les regrouper en une seule à l'aide d'une virgule. Par exemple on peut remplacer
a:link {
	color: #2F466A;
	text-decoration: none;
}
a:visited {
	color: #2F466A;
	text-decoration: none;
}
par
a:link, a:visited {
	color: #2F466A;
	text-decoration: none;
}


Concernant ta question, l'espacement de tes liens à l'aide de
&nbsp;&nbsp;<img src="phpbb3/styles/zeitgeist/theme/images/separation_menu.jpg" width="2" height="30" />&nbsp;&nbsp;
est incorrecte car elle ne respecte pas la séparation contenu / présentation.

En général on utilise pour les menus des listes non ordonnées. Cela donnerait par exemple :
<!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>
<meta http-equiv="Content-Type" content="text/html; charset=iso-8859-1" />
<title>Californication Center</title>
<style type="text/css" media="screen,projection">
<!--
#global {
	width: 817px;
	margin-right: auto;
	margin-left: auto;
}
#menu {
	background: #999999 url(http://www.californication-center.fr/phpbb3/styles/zeitgeist/theme/images/fond_menu_haut.jpg);
	text-align: center;
	font-size: .7em;
	font-weight: bold;
	font-family: Verdana, Arial, Helvetica, sans-serif;
	list-style-type: none;
	list-style-image:none;
	list-style-position: outside;
	margin:0;
	padding:0;
}

#menu li {
	display:inline;
	padding: 0 2px;
	background: transparent url(http://www.californication-center.fr/phpbb3/styles/zeitgeist/theme/images/separation_menu.jpg) right center no-repeat;
}

#menu li.last_li {
	background: none;
}

#menu li a {
	line-height: 25px;
	color: #2F466A;
	text-decoration: none;
	padding: 2px 8px 2px 4px;
}

#menu li a:hover,
#menu li a:focus,
#menu li a:active {
	color: #2A63BA;
	text-decoration: underline;
}

#menu li a.active, #menu li a.active:hover {
	color: #2F466A;
}

	-->
</style>
</head>
<body>
<div id="global">
<ul id="menu">
<li><a href="index.php">Accueil</a></li>
<li><a href="pages_web/la_serie.php">La série</a></li>
<li><a href="pages_web/episodes.php">Episodes</a></li>
<li><a href="pages_web/personnages.php">Personnages</a></li>
<li><a href="pages_web/streaming.php">Streaming</a></li>
<li><a href="pages_web/jukebox.php">Jukebox</a></li>
<li><a href="pages_web/telechargements.php">Téléchargements</a></li>
<li><a href="pages_web/achats.php">Achats</a></li>
<li><a href="pages_web/galerie.php">Galerie</a></li>
<li class="last_li"><a href="phpbb3/index.php">Forum</a></li>
</ul>
</div>
</body>
</html>


Peut-être que le mieux serait de reprendre du début. Un petit tour sur cet article : comment débuter et trouver l'information ?, ainsi que dans les Tutoriels et dans la FAQ devrait déjà bien t'informer sur les standards du web et la manière de faire un site conforme.

Bonne continuation Smiley smile .



Edit: je viens de voir que tu utilises un DOCTYPE XHTML Transitional alors que mes remarques sur le fait d'utiliser des balises et des attributs de mise en forme ne concernaient que le XHTML Strict Smiley rolleyes . Cela dit je t'invite à utiliser le Strict car bien que plus rigoureux il permet du même coup de ne pas mélanger contenu et présentation, ce qui est une très bonne habitude (ne serait-ce que pour la maintenance de ton site) Smiley cligne .

Lire à ce sujet : Les DTD HTML4.01 et XHTML1.0 : comment choisir ?
Modifié par Heyoan (29 Jun 2008 - 04:54)
Mais jene suis pas assez caleé! jai meme du mal a te comprendre ! de plus ca be m apporte pâs la solution !
Shepard34 a écrit :
Mais jene suis pas assez caleé! jai meme du mal a te comprendre !
Arf ! On est tous passés par là... et c'est pour cette raison que je t'ai donné tous ces liens plus haut Smiley cligne !

Alors en essayant d'être plus clair et en résumant :

- Alsacreations est dédié aux Standards du web. Le "but du jeu" n'est pas de suivre des normes juste pour le plaisir mais de faire en sorte qu'un site soit accessible à tous, quels que soient les outils (navigateurs graphiques ou textuels, lecteurs d'écrans, etc...) ou les éventuels handicaps du visiteur. Le premier lien Comment débuter avec XHTML et les CSS ? Que sont les standards web ? en parle et donne également des liens pour réviser les bases du XHTML et du CSS.

- l'une des choses essentielles est donc d'utiliser un DOCTYPE en début de page pour indiquer au navigateur que le code utilisé respecte les standards. A priori le plus indiqué étant le XHTML Strict notamment parce qu'il "oblige" à séparer le contenu (XHTML) de la présentation (CSS). Coup de chance, cela rend le code beaucoup plus lisible, le chargement des pages beaucoup plus rapide et la maintenance beaucoup plus facile (il suffit par exemple de changer une ligne dans le CSS pour modifier la couleur des liens du menu sur toutes les pages).

- on peut ensuite passer aux divers tutoriaux sur les CSS. En particulier :
Comprendre la structure HTML et le rendu CSS des balises : bloc et en-ligne.
Comment positionner les éléments en CSS ?
Maîtriser le positionnement CSS dans toutes les situations.
Créer des menus simples en CSS.
etc... etc...

Shepard34 a écrit :
de plus ca be m apporte pâs la solution !
Et bien justement si Smiley langue ! Même si ma proposition n'est pas parfaite, elle respecte cette fameuse séparation du contenu et de la présentation... et accessoirement elle centre (à peu près) ton texte.
Et bien désolé de te rederanger ! je viens de lire tout cela mais je n'ai pas trouve la solution (tu va me tuer lol) peux tu m'aiguiller ou me dicter la solution stp ?
Modérateur
Salut,

As-tu essayé de passer par une liste comme te l'a montré Heyoan ?

A l'heure actuelle, ce n'est pas le cas.
Shepard34 a écrit :
je viens de lire tout cela mais je n'ai pas trouve la solution (tu va me tuer lol)
Non, non ! C'est cool Smiley nuts Smiley diablo Smiley lol !

Mais rassures-moi : est-ce qu'au moins tu as essayé de copier le code que je t'ai donné plus haut (qui va de <!DOCTYPE ... jusqu'à </html>) pour voir ce que ça donne ? Parce qu'à priori tu as juste à rajouter les lignes qui manquent dans ton CSS et à remplacer ta div #menu par <ul id="menu"> jusqu'à </ul> Smiley cligne !
Modérateur
Précisions : Lorsque tu fais ta structure, tu dois, dans un premier temps, mettre un balisage adapté à la situation et non baliser tes textes en fonction d'exigences graphiques.

Un menu est une liste de liens donc le "ul" convient bien.

Après, c'est via CSS que tu fais ta mise en page.
Je viens de faire le copier coller deton code que jai mis en ligne tu peux constater au http://www.californication-center.fr toutefois je constate que mes images de separation sont coupées et cest pour ca que ca aligne bien vu qu elles sont a la meme taille que le texte
mais moi je les veux entiere svp
Modifié par Shepard34 (29 Jun 2008 - 13:31)
Modérateur
Tu peux augmenter le padding vertical affecté à #menu li pour obtenir ce que tu souhaites.
Modérateur
+1 Smiley rolleyes

Ceci dit, dans mon post précédent, je te dis quand même qu'il faut regarder le padding de "#menu li" et... il n'y en a pas 36. Smiley fouille
Bien sur mais deja tu vois je comprends pas le code tu m'a envoyé donc galere! A la base vu que mon souci setait reglé avec la balise "img" je voulais savoir si c'était possible d'utiliser cette balise mais pour juste une div, celle de mon menu , pas sur le reste de la page donc !
Pages :