28172 sujets

CSS et mise en forme, CSS3

Je suis en train de réaliser un header pour mon site et j'ai un gros problème de décalage sous FF3.

Mon html est le suivant :
<body>
	
<div id="page">	
	<div id="outils">
		<span class="liste_outils">
			<ul>
				<li><a href="#" title="#">Accueil</a></li>
				<li><a href="#" title="#">A propos</a></li>
				<li><a href="#" title="#" target="_blank">Galerie photos</a></li>
				<li><a href="#" Title="#">Archives</a></li>
				<li><a href="#" Title="#">Plan du site</a></li>
				<li><a href="#" Title="#">Me contacter</a></li>
			</ul>
		</span>
		<span class="liste_RSS">
			<ul>
				<li>Suscribe :</li>
				<li>Posts</li>
				<li>Commentaires</li>
			</ul>
		</span>
	</div>
.....
</div>


La CSS qui va avec :

body{
	margin: 0 0 0 0;
	background-color:#39464a;
	background-image:url(images/bkg_body.png);
	background-repeat:repeat-x;
	font-family:“Lucida Sans Unicode”, sans-serif;
}

#page {
	position: absolute;
	left:50%;
	margin-left: -500px;
	width:1000px;
	margin-top:0;
}

#outils {
	position:absolute;
	background-image: url(images/bkg_outils.png);
	width:1000px;
	height:20px;
}

.liste_outils {
	float:left;
	width:600px;
	height:20px;
}

.liste_RSS {
	float:right;
	width:300px;
	height:20px;
}

.liste_outils li {
	display:inline;
	color:#a0a09b;
	padding-left:20px;
	font-size:11px;
	font-weight:bold;
	height:20px;
}

.liste_outils li a{
	color:#a0a09b;
	text-decoration:none;
}

.liste_outils li a:hover{
	color:#e8a029;
	text-decoration:none;
}

.liste_RSS li {
	display:inline;
	color:#a0a09b;
	padding-left:10px;
	padding-right:10px;
	font-size:11px;
	font-weight:bold;
	height:20px;
}


Pour résumer, les intitulés des "liens outils" apparaissent comme sous le div outils.... Cf Image upload/18657-outils.gif

Quelqu'un a une idée ?

D'avance merci
Modifié par tybo (04 Dec 2008 - 12:06)
Bonjour,

Bon déja je crois qu'il y a un soucis structurel dans ton html, on ne met pas d'élement block (ul) dans un élément inline (span). Cela reviendrait à mettre un paragraphe dans une balise strong par exemple. Je commencerais par modifier ça.
J'ai fait cette modification et ça ne change rien.

J'avais essayé les span à la place des div sans grand espoir mais c'était effectivement une erreur...
Supprime carrément les span (des div à leur place sont inutiles => divite) Smiley ohwell
Il suffit donc de mettre les class associées directement sur les ul
Ajoute margin:0 pour les ul
=> hop! Smiley cligne
Impeccable !

Ca marche, merci beaucoup !

Edit : Le menu apparaît mais les liens ont disparu... sont totalement inactifs sous FF3, même plus d'effet de rollover....

Au secours.... que se passe-t-il ?
Modifié par tybo (04 Dec 2008 - 12:07)
tybo a écrit :
Edit : Le menu apparaît mais les liens ont disparu... sont totalement inactifs sous FF3, même plus d'effet de rollover....


À vérifier:
1. Le code HTML est valide?
2. Il n'y a pas d'élément (visible ou invisible) superposé aux liens (à vérifier avec Firebug par exemple)?

(En passant la description que tu fais est incohérente. Les liens ont disparu ou sont visibles mais non réactifs?)
Ben voui... , Florent a raison Smiley cligne
As-tu un code "comme" celui que j'ai reconstruit :

<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN">
<html>
  <head>
  <meta http-equiv="content-type" content="text/html; charset=iso-8859-1">
  <title></title>
  <style type="text/css">
    body{
    	margin:0;
    	background-color:#39464a;
    	background-image:url(images/bkg_body.png);
    	background-repeat:repeat-x;
    	font-family:“Lucida Sans Unicode”, sans-serif;
    }
    ul {
    	margin:0;
    }
    #page {
    	position: absolute;
    	left:50%;
    	margin-left: -500px;
    	width:1000px;
    	margin-top:0;
    }
    #outils {
    	position:absolute;
    	background-image: url(images/bkg_outils.png);
    	width:1000px;
    	height:20px;
    }
    .liste_outils {
    	float:left;
    	width:600px;
    	height:20px;
    }
    .liste_RSS {
    	float:right;
    	width:300px;
    	height:20px;
    }
    .liste_outils li, .liste_RSS li {
    	display:inline;
    	color:#a0a09b;
    	padding:0 10px;
    	font-size:11px;
    	font-weight:bold;
    	height:20px;
    }
    .liste_outils li a{
    	color:#a0a09b;
    	text-decoration:none;
    }
    .liste_outils li a:hover{
    	color:#e8a029;
    	text-decoration:none;
    }
  </style>
  </head>
<body>
<div id="page">	
	<div id="outils">
		<ul class="liste_outils">
			<li><a href="#" title="#">Accueil</a></li>
			<li><a href="#" title="#">A propos</a></li>
			<li><a href="#" title="#" target="_blank">Galerie photos</a></li>
			<li><a href="#" Title="#">Archives</a></li>
			<li><a href="#" Title="#">Plan du site</a></li>
			<li><a href="#" Title="#">Me contacter</a></li>
		</ul>
		<ul class="liste_RSS">
			<li>Suscribe :</li>
			<li>Posts</li>
			<li>Commentaires</li>
		</ul>
	</div>
</div>
</body>
</html>

Dans le cas ci-dessus, les liens sont visibles et passent à l'orange au survol.
Note : il n'y a évidemment pas de lien dans la partie "liste_RSS" Smiley cligne
Modifié par Philix (04 Dec 2008 - 14:34)
Voilà l'état de mon code à l'heure actuelle :

<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
<html xmlns="http://www.w3.org/1999/xhtml" <?php language_attributes(); ?>>

<head profile="http://gmpg.org/xfn/11">
	<meta http-equiv="Content-Type" content="<?php bloginfo('html_type'); ?>; charset=<?php bloginfo('charset'); ?>" />
	<title><?php bloginfo('name'); ?> <?php if ( is_single() ) { ?> » Archive du blog <?php } ?> <?php wp_title(); ?></title>
	<link rel="stylesheet" href="<?php bloginfo('stylesheet_url'); ?>" type="text/css" media="screen" />
	<link rel="alternate" type="application/rss+xml" title="<?php bloginfo('name'); ?> RSS Feed" href="<?php bloginfo('rss2_url'); ?>" />
	<link rel="pingback" href="<?php bloginfo('pingback_url'); ?>" />
	<?php wp_head(); ?>
</head>

<body>
	
<div id="page">	
	<div id="outils">
			<ul class="liste_outils">
				<li><a href="#" title="Accueil">Accueil</a>­</li>
				<li><a href="#" title="A propos...">A propos</a>­</li>
				<li><a href="#" title="Photos Flickr" target="_blank">Galerie photos</a>­</li>
				<li><a href="#" Title="Archives">Archives</a>­</li>
				<li><a href="#" Title="Plan du site">Plan du site</a>­</li>
				<li><a href="#" Title="Me contacter">Me contacter</a>­</li>
			</ul>
			<ul class="liste_RSS">
				<li>Suscribe :</li>
				<li>Posts</li>
				<li>Commentaires</li>
			</ul>
	</div>
	<div id="header">
		<a href="<?php bloginfo('home'); ?>"><img src="wp-content/themes/tybo/images/bkg_header.png" alt="header" height="110" width="1000"></a>
	</div>
	<div id="pages">
		<div id="liste_pages">
			<ul>
				<?php wp_list_cats(); ?>
			</ul>
 		</div>
		<div id="phrase_jour">
			<img class="titre_phrase" src="wp-content/themes/tybo/images/titre_phrase.png" alt="La phrase du jour" height="29px" width="121px">
			<span class="phrase_jour"><?php quotescollection_display_randomquote() ?></span>
		</div>
	</div>


Pour le Html et voilà la css dans son intégralité :

body{
	margin: 0 0 0 0;
	/*background-color:#39464a;
	background-image:url(images/bkg_body.png);
	background-repeat:repeat-x;*/
	font-family:“Lucida Sans Unicode”, sans-serif;
}

h2.foot{
	font-size:13px;
	margin-left: 20px;
	color:#cfb370;
}

ul {
	margin:0;
}

a img {
	border:none;
}

#page {
	position: absolute;
	left:50%;
	margin-left: -500px;
	width:1000px;
	margin-top:0;
}

#outils {
	position:absolute;
	background-image: url(images/bkg_outils.png);
	width:1000px;
	height:20px;
}

.liste_outils {
	float:left;
	width:600px;
	height:20px;
}

.liste_RSS {
	float:right;
	width:300px;
	height:20px;
}

.liste_outils li {
	display:inline;
	color:#a0a09b;
	padding-left:20px;
	font-size:11px;
	font-weight:bold;
	height:20px;
}

.liste_outils li a{
	color:#a0a09b;
	text-decoration:none;
}

.liste_outils li a:hover{
	color:#e8a029;
	text-decoration:none;
}

.liste_RSS li {
	display:inline;
	color:#a0a09b;
	padding-left:10px;
	padding-right:10px;
	font-size:11px;
	font-weight:bold;
	height:20px;
}

#header {
	position:absolute;
	padding-top:20px;
	clear:both;
	height:110px;
}

#pages {
	background-color:#fff1bf;
	padding-top:130px;
	height:29px;
}

#liste_pages {
	float:left;
	border-style:solid;
	border-width: 1px;
	border-color:#000000;
	height:29px;
}

#liste_pages li {
	display:inline;
	padding-left:10px;
}

#liste_pages li a {
	color:#1c1f1e;
	text-decoration:none;
}

#phrase_jour {
	float:right;
	height:29px;
	width:400px;
	font-size:12px;
}

.titre_phrase {
	float:left;
}

.phrase_jour {
	float:right;
	font-size:10px;
	height: 29px;
}

#content {
	clear:both;
	position:absolute;
	background-image:url(images/bkg_contenu.png);
	background-repeat:repeat-y;
	width:750px;
}

#sidebar {
	float:right;
	background-color: Red;
	width:250px;
}

.liens_footer {
	/*background-color:#39464a;*/
	height:20px;
	text-align:center;
	font-size:11px;
	color:#cfb370;
	padding-top:8px;
}

.liens_footer a{
	color:#cfb370;
	font-weight: bold;
	text-decoration:none;
}

.liens_footer a:hover{
	color:#688993;
	font-weight:bold;
	text-decoration:none;
}

.footer {
	clear:both;
	background-image:url(images/bkg_footer.png);
	background-repeat:no-repeat;
	background-color:#000000;
	width:1000px;
	height:300px;
}

.colonne1_footer {
	padding-top:40px;
	float:left;
	width:250px;
	height:25px;
}

.text_about {
	font-size:10px;
	color:#FFFFFF;
	margin-left:20px;
	padding-right:10px;
}

.colonne2_footer {
	padding-top:40px;
	float:left;
	width:250px;
	height:25px;
}

.colonne3_footer {
	padding-top:40px;
	float:left;
	width:250px;
	height:25px;
}

.colonne4_footer {
	padding-top:40px;
	float:left;
	width:250px;
	height:25px;
}


Et ce que je veux dire par les liens ont disparu c'est que je les vois, ils sont affichés et correctement dans le div (résultat de ma 1ere question) mais que je n'ai plus d'effet de rollover et que les liens sont inopérants, je ne peux pas cliquer dessus et ce, uniquement sous FF3.

Encore merci
Philix, le code que tu as reconstruit sera rendu en mode de compatibilité ou mode Quirks. Ce qui est une très mauvaise idée. La faute à un Doctype HTML 4.01 Transitional incomplet qui, par convention, déclenche le mode Quirks.
Oups, vrai ça Smiley rolleyes
J'ai fais ça un peu vite en partant d'un template (généré par défaut dans PSPAD) que je n'utilise habituellement pas (moi c'est plutôt XHTML 1.0 strict)
C'est le genre de truc que le validateur ne dit pas Smiley decu
Merci pour la remarque Florent Smiley biggrin

@tybo,

Passe nous plutôt le code obtenu par "view source" ou "code source de la page", parce que là tu nous donne une source php ...
Ou mieux, la page en ligne (si elle l'est Smiley cligne )
Modifié par Philix (04 Dec 2008 - 15:48)