28217 sujets

CSS et mise en forme, CSS3

Bonjour à tous,

Je suis nouveau venu dans le monde du strict html donc excuser mes lacunes...
Voila je souhaite refondre un site g réussit mon coup avec validation css et xhtml.... juskici tout va bien
Visible ici http://kwa29.free.fr/Sofibra/index2.html
Mais il ya un mais, la mise en forme est en tableau Smiley fache hummm pas bien
Je me suis donc dis (comme beaucoup de monde surement !!) je v tout passer en div sans tableau, à la norme....
Hé voila le résultat
Visible ici http://kwa29.free.fr/Sofibra/index3.html
Sous IE sa passe mais sous Firefox g une ligne entre mon bandeau et le menu

Je vous poste le html utilisé

<!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>
<title>hotel pour seminaire, week end, sejour a themes, mariage - hotels sofibra</title>
	
	<meta http-equiv="Content-Type" content="text/html; charset=iso-8859-1" />
	<meta name="MSSmartTagsPreventParsing" content="TRUE">
	<meta name="keywords" content="" />
	<meta name="description" content="" />
	<meta http-equiv="content-language" content="fr" />
	<meta content="5 days" name="revisit-after" />
	<link href="images3/base.css" type="text/css" media="screen" rel="stylesheet" />
	<link href="images3/couleurs.css" type="text/css" media="screen" rel="stylesheet" />
	<link href="images3/base_print.css" type="text/css" media="print" rel="stylesheet" />
	<link href="images3/couleurs_print.css" type="text/css" media="print" rel="stylesheet" />
	<link rel="shortcut icon" type="image/x-icon" href="images3/favicon.ico" />
	<link rel="icon" type="image/png" href="images3/favicon.png" />
</head>
<body class="c-pastel">

		<div id="x-logo">
		<a href=""><img src="images3/bandeau.jpg" alt="Cliquez ici" title="hotel pour seminaire, week end, sejour a themes, mariage - hotels sofibra" /></a>
		</div>
		<div id="x-menu">
		<ul>
  	  	<li><a title="" href="">Rechercher un Hôtel</a></li>
      	<li><a title="" href="">Coup de Coeur</a></li>
      	<li><a title="" href="">S&eacute;jours &agrave; Th&egrave;mes</a></li>
      	<li><a title="" href="">Groupe</a></li>
     	<li><a title="" href="">Partenaires</a></li>
     	<li><a title="" href="">Contacts</a></li>  		
		</ul>
		</div>



		 <div id="x-footer">
<img src="images3/mail_bas_gauche.gif" class="bando_gauche" alt="Aucune image..." />
<a href="http://www.hotel-sofibra.com/"><img src="images3/mail_bas_droit.gif" class="bando_droite" alt="Aucune image..." /></a>
<img src="images3/ligne_bleu.gif" class="bando_centre" alt="Aucune image..." />
</div>
	
	<div id="x-footer-errata">
<a href="">plan du site</a> | 
<a href="">mentions l&eacute;gales</a> | 
<a href="">cr&eacute;dits photos</a>	
	
	<br /><br />SOFIBRA &copy; 2002 -2005
	<a href="http://jigsaw.w3.org/css-validator"><img src="images2/css.gif" alt="Aucune image..." /></a>	
	<a href="http://validator.w3.org/check/referer"><img src="images2/xhtml.gif" alt="Aucune image..." /></a>
		</div>
</body>
</html>

et les 2 fichiers css associés

body

{

    font-family:				Verdana, Arial, Helvetica, sans-serif;

 	font-size:					12px;

	width:						766px;

	margin-left: 				auto;

	margin-right: 				auto;

}
li, ul {
margin:0px;
padding:0px;
}



#x-logo img

{

    width:						100%;

	border:						0;

}

#x-menu

{

	width: 100%;
margin: 0 auto;
text-align: center;

	font-family:				Verdana, Arial, Helvetica, sans-serif;

 	font-size:					13px;

	

}

#x-menu li

{

    display: 					inline;

	padding-right: 				10px;

	padding-left: 				10px;

}



#x-menu a

{

    text-decoration: 			none;

}


#x-footer {

width: 100%;
margin: 0 auto;
text-align: center;

}
#x-footer img {
border:0;
}


.bando_gauche { display: block; float: left; margin-right: 0px; }

.bando_centre { display: block; margin: 0px auto; }

.bando_droite { display: block; float: right; margin-left: 0px; }





#x-footer-errata {
font-size: 					11px; 

	font-family:				Arial, Verdana, Helvetica, sans-serif;

	font-weight:				bold;

	color:						white;
width: 100%;
margin: 0 auto;
text-align: right;

}
#x-footer-errata a {
font-size: 					11px; 

	font-family:				Arial, Verdana, Helvetica, sans-serif;

	font-weight:				bold;

	color:						white;

	text-decoration: 			none;	
}
#x-footer-errata a:hover {
font-size: 					11px; 

	font-family:				Arial, Verdana, Helvetica, sans-serif;

	font-weight:				bold;

	color:						white;

	text-decoration: 			underline;	
}



#x-footer-errata img {
border:0;
vertical-align: middle; 
display: inline-block; 
}












input {

	font-family:				Verdana, Arial, Helvetica, sans-serif;

	font-size:					11px;

	border:						1px solid;

	border-color:				#999999;

	text-decoration:			none;	

}



textarea {

	font-family:				Verdana, Arial, Helvetica, sans-serif;

	font-size:					11px;

	border:						1px solid;

	border-color:				#999999;

}

 

select {

	cursor:						pointer;

	font-family:				Verdana, Arial, Helvetica, sans-serif;

	font-size:					12px;

	border:						1px solid;

	color:						black;

	border-color:				#999999;

	text-decoration:			none;	

}



body.c-pastel {

    background-color:   		#fff4d8;

	width:						766px;

}

.c-pastel #x-logo img {

   	background-color: 			White;

	border-right:				rgb(0,102,153) 2px solid;			

	border-left:				rgb(0,102,153) 2px solid;

	border-top:					rgb(0,102,153) 2px solid;

}

.c-pastel #x-menu {

   	background-color: 			White;

	border-right:				rgb(0,102,153) 2px solid;			

	border-left:				rgb(0,102,153) 2px solid;

}





.c-pastel #x-menu a {

	background-color: 			White;

    text-decoration: 			none;

	text-align:					center;

	font-weight: 				bold; 

	font-size: 					13px; 

	color: 						#006699; 

	font-family:				Verdana, Arial, Helvetica, sans-serif;

}

.c-pastel #x-menu a:visited {

	text-decoration: 			none;

}

.c-pastel #x-menu a:hover {

	color: 						#f60; 

	border-bottom: 				#f60 5px solid;

}

.c-pastel #x-menu a:active {

	color: 						#f60; 

	border-bottom: 				#f60 5px solid;

}
.c-pastel #x-footer {

   	background-color: 			White;

	border-right:				rgb(0,102,153) 2px solid;			

	border-left:				rgb(0,102,153) 2px solid;

}

.c-pastel #x-footer-errata {

   	background-color: 			#006699;

	border-right:				rgb(0,102,153) 2px solid;			

	border-left:				rgb(0,102,153) 2px solid;

}

Smiley bawling Smiley bawling Smiley bawling comprend plus ????
D'avance merci pour vos reponses ou aides....
Modifié par Kwa29@louest (25 Feb 2005 - 21:18)
Cela est vraiment bizarre pour une fois que c IE qui marche bien "enfin facon de parler .:: geek inside ::." et pas Firefox
Je dois surement ne pas respecter qq chose dans le standard

PS: merci pour ta reponse si rapide Marvin Smiley ravi
A essayer, un


li, ul {
margin:0px;
padding:0px;
}


Je ne sais pas.
Faut voir, car tu ne spécifie nulle part qu'elles sont nulles...
Modifié par johanna33 (24 Feb 2005 - 23:55)
J'avoue que là, tout de suite, je ne vois pas pkoi il reste un px.

Je verra demain, si qqn n'a pas trouvé d'ici là.

Pour le vertical-align:middle, je ne crois pas que cela marche en xhtml.
Mais je ne sais pas ce qu'est un "absmiddle".
En revanche le : line-height:25px (hauteur du bloc dans le lequel tu veux centrer l'élément) marche bien.

A+
Tu n'as pas spécifié de hauteur pour le bloc contenant ton image d'entete. Si tu lui donne la même hauteur que celle de ton image ton problème sera réglé.


#x-logo {
 height:70px;
}


D'ailleur à propos de cette image tu as un petit soucis avec tes attributs alt et title.


<a href=""><img src="images3/bandeau.jpg" alt="Cliquez ici" title="hotel pour seminaire, week end, sejour a themes, mariage - hotels sofibra" /></a>


Ton image étant dans un lien c'est le lien lui même qui devrait avoir un attribut title et non l'image (en règle général tous les liens devraient posséder cet attribut).

Et pour ton image, tu as mis "Cliquer ici" comme attribut alt. Je sais que IE est un peu bebète parfois (sigh) et tiens absolument à afficher cet attribut en tooltip mais en réalité l'attribut alt correspond à la descrition alternative de ton image. Résultat quelqu'un visitant ton site avec un navigateur en mode texte verra juste un "Cliquer ici" à la place de ton bandeau. Tu devrais donc remplacer ça par une déscription plus en rapport avec ton image (et sans tenir compte de ce que peux afficher IE).

Un exemple plus adapté donnerais :


<a href="" title="Cliquer ici pour revenir à l'accueil"><img src="images3/bandeau.jpg" alt="Sofibra - Groupe hôtelier" /></a>


Un conseil, pour eviter d'être perturbé par le comportement erroné de IE tu peux simplement le désactiver en modifiant les options :

Outils > Options Internet...
Onglet : Avancé
Sous accessibilité tu décoche l'option :
"Toujours afficher le texte de légendes des images"
Modifié par jb_gfx (25 Feb 2005 - 00:50)
Si tu permet je continue sur ma lancé et je te donne encore quelques conseils généraux pour améliorer la conception de ta page.

- Tu pourrais mettre ton image de bandeau dans une balise h1 puisqu'elle correspond au titre du site.

- Sur ce genre d'image :

<img src="images3/mail_bas_gauche.gif" class="bando_gauche" alt="Aucune image..." />


L'attribut alt devrait être laissé vide puisque cette image n'a pas lieu d'être "lue" dans un navigateur en mode texte.
Au contraire pour celles des liens W3C tu n'as pas mis de description valable.

- N'oublie pas de remplir les title de tes liens.

Bon il y aurait d'autres chose à dire (comme passer tes images ne servant qu'à la présentation en background CSS plutôt qu'en utilisant des balises img dans le code HTML, etc) mais je vais me coucher Smiley smile

J'espère que ça t'aura un peu aidé, bonne continuation
Salut !
En rajoutant un
#x-logo img
{
    width: 100%;
    border: 0;
    [#red][b]float: left;[/b][/#]
}
ça élimine ton px d'espace.

Je ne sais pas pourquoi, mais ça fonctionne!

@+, HoPHP

Modifié par HoPHP (25 Feb 2005 - 14:34)
Pourquoi justement aller utiliser une bidouille dont tu "ne comprend pas pourquoi elle fonctionne" quand il existe une solution simple, logique, efficace et propre?
Juste. Très juste.

Je n'avais pas vu ta solution (mets-la en évidence ! Smiley murf ) et effectivement, elle fonctionne ! Mille excuses, désolé.

@+, HoPHP
Le sujet n'étant pas estampillé [résolu], je me permet d'en rajouter :

Il n'est pas nécessaire de fixer la hauteur du div conteneur (#x-logo). En fait le problème vient du fait que la balise img est une balise en-ligne, et est censée être alignée avec du texte. Or, pour tenir compte de la présence éventuelle de lettres à patte comme j, p, q ou g, un espacement est ajouté sous l'image (pour s'en rendre compte, il suffit de grossir la police sous Firefox et on voit l'espacement s'élargir alors qu'il n'y a pas de texte dans le div en question). Tout dépend de la façon dont le navigateur gère l'alignement vertical d'une ligne de texte.
Pour IE, cet alignement est "bottom", donc pas de souci alors que pour Firefox ou Mozilla, c'est "baseline" faisant qu'on voit systématiquement un espace sous l'élément.

Une solution la plus logique ici est donc de mettre un "vertical-align:bottom" dans la définition CSS de cette image (#x-logo img). On peut aussi la forcer en mode "display:block;" pour contourner le problème.

Et voilà, à critiquer par les experts du coin si nécessaire.
Smiley cligne
Nilpohc a écrit :
Le sujet n'étant pas estampillé [résolu], je me permet d'en rajouter :

Il n'est pas nécessaire de fixer la hauteur du div conteneur (#x-logo). En fait le problème vient du fait que la balise img est une balise en-ligne, et est censée être alignée avec du texte. Or, pour tenir compte de la présence éventuelle de lettres à patte comme j, p, q ou g, un espacement est ajouté sous l'image (pour s'en rendre compte, il suffit de grossir la police sous Firefox et on voit l'espacement s'élargir alors qu'il n'y a pas de texte dans le div en question). Tout dépend de la façon dont le navigateur gère l'alignement vertical d'une ligne de texte.
Pour IE, cet alignement est "bottom", donc pas de souci alors que pour Firefox ou Mozilla, c'est "baseline" faisant qu'on voit systématiquement un espace sous l'élément.

Une solution la plus logique ici est donc de mettre un "vertical-align:bottom" dans la définition CSS de cette image (#x-logo img). On peut aussi la forcer en mode "display:block;" pour contourner le problème.

Et voilà, à critiquer par les experts du coin si nécessaire.
Smiley cligne

dans son cas, je me permet d'en douter, une balise inline peut bien créer un espace de quelques pixels en dessus, mais de là à créer 15-20px en dessous, c'est fort Smiley lol
C'est pourtant tout à fait exact. C'est bien un problème d'alignement d'image sur la ligne de base du texte (vertical-align:bottom), comme l'a bien expliqué Nilpohc.

(l'espace n'est pas de 15 ou 20px, du moins, tel qu'il apparaît chez moi).
Modifié par Laurent Denis (25 Feb 2005 - 20:06)
Laurent Denis a écrit :
C'est pourtant tout à fait exact

(l'espace n'est pas de 15 ou 20px, du moins, tel qu'il apparaît chez moi).

j'avais cru voir plus que 1 pixel, j'ai du halluciner.
Je ne sais plus ou j'ai vu cela Smiley langue
A force de voir toutes les questions, j'ai tout mélangé Smiley langue