28172 sujets

CSS et mise en forme, CSS3

Bonjour à tous,

Après un bon bout de temps à tester plusieurs solutions je me tourne vers vous.
Déjà, mon problème principal est le suivant :

- impossible de faire en sorte que mon clear:right; soit respecté sous IE6 et 7. C'est comme si il voulait absolument appliquer un clear:both; (je veux qu'il passe sous l'élément gauche mais qu'il se mette à la suite du droit)

- le fait d'ajouter un commentaire conditionnel pour IE6 et 7 fait disparaître sous ces même navigateurs ma barre #pre-header même en lui donnant le layout. Si j'enlève le commentaire, la barre réapparaît.

Je vous joins le code html, le css "normal" et le css conditionnel :

<!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" lang="fr">
    <head>
        <meta http-equiv="Content-Type" content="text/html; charset=utf-8" />
  <title>Le Réseau</title>
  <link type="text/css" rel="stylesheet" href="stylereseau.css" />
 	<!--[if lte IE 7]> <link type="text/css" rel="stylesheet" href="stylereseauIE.css <![endif]-->
</head>
<body>
<div id="pre-header">
	<div id="conteneur">
		<div id="marque-page">
			<a href="#"><img alt="marque page" src="img/marque-page-header.png" /></a>
		</div>
		<div id="raison-sociale">
			<p>Association loi de 1901 - 8/10 rue des blés 93210 La Plaine Saint-Denis</p>
		</div>
		<div id="menu-pre-header">
		<ul id="menu-access">
				<li><a href="#">Accueil</a> |</li>
				<li><a href="#">FAQ</a> |</li>
				<li><a href="#">Contact</a> |</li>
				<li><a href="#">Plan du site</a> |</li>
				<li><a href="#">Mentions légales</a></li>
		</ul>
		<div id="test">
			<a href="#"><img alt="" src="img/logo-fb.png" /></a>
			<a href="#"><img alt="" src="img/logo-tw.png" /></a>
		</div>
			
	</div>
	<div id="header">
				<a href="#"><img alt="marque page" src="img/logo-reseau.png" /></a>
				<div id="espace-membre">
					<p>Espace adhérents</p>
				</div>
		</div>
</div>
</div>
</body>
</html>


/* Reset CSS */

html, body, div, span, applet, object, iframe,
h1, h2, h3, h4, h5, h6, p, blockquote, pre,
a, abbr, acronym, address, big, cite, code,
del, dfn, em, font, img, ins, kbd, q, s, samp,
small, strike, strong, sub, sup, tt, var,
dl, dt, dd, ol, ul, li,
fieldset, form, label, legend,
table, caption, tbody, tfoot, thead, tr, th, td {
	margin: 0;
	padding: 0;
	border: 0;
	outline: 0;
	font-weight: inherit;
	font-style: inherit;
	font-size: 100%;
	font-family: inherit;
	vertical-align: baseline;
}



body {
	background-color:#757474;
	font-family:Arial, sans-serif;
	font-size:11px;
	color:black;
}

div#pre-header {
	
	width:100%;
	height:37px;
	background: url(img/bkg-pre-header.png) 0 0 repeat-x;
}

div#conteneur {
	
	width:1023px;
	height:37px;
	margin:0 auto;
}

#marque-page {
	width:73px;
	height:131;
	float:left;
	margin-left:50px;
}

#raison-sociale {
	float:left;
	margin-left:10px;
}

#raison-sociale p {
	margin-top:15px;
	font-family:Arial, Verdana, sans-serif;
	font-size:9px;
	color:white;
	
}

ul#menu-access {
	
	float:left;
	margin-top:12px;
	
}

ul#menu-access li {
	
	display:inline;
	list-style-type: none;
	font-style:Arial, Verdana, sans-serif;
	font-size:10px;
	color:white;
}

ul#menu-access li a {
	text-decoration:underline;
	color:white;
	
}

ul#menu-access li a:hover {
	text-decoration:none;
}

div#menu-pre-header {

	float:right;
	width:340px;
	height:37px;
	margin-right:20px;
	text-align:right;
	
	
}

div#menu-pre-header a img {
	margin-left:10px;
}

div#test {
	float:right;
	width:69px;
	margin-top:4px;
	
}

/* ///HEADER/// */

div#header {
	
	clear:right;
	width:1023px;
	height:104px;
	background:url(img/bann-header.jpg) no-repeat;
}

div#header a img{
	margin-left:10px;
	margin-top:22px;
}

div#espace-membre {
	float:right;
	width:160px;
	height:90px;
	margin-right:20px;
	margin-top:5px;
	background-color:#f0f0f0;
	border:solid 1px #ebebeb;
}

div#espace-membre p {
	
	
	height:16px;
	padding-left:5px;
	padding-top:5px;
	border-bottom:solid 1px #b2b2b2;
	font-style:Arial, Verdana, sans-serif;
	font-size:12px;
	text-transform:uppercase;
	color:black;


/* POUR IE6 et 7 */

/* problème des float */

	#marque-page,
	#raison-sociale,
	ul#menu-access,
	div#menu-pre-header,
	div#test,
	div#espace-membre {display:inline; position:relative;}


 input, button {overflow:visible;}

/* problème de layout */

	div#pre-header,
	div#header {zoom:1;}


Merci d'avoir pris le temps d'arriver jusqu'ici !
Modifié par Padaweb (25 Apr 2012 - 11:57)
Bonjour,

pour ton deuxième problème, tu n'as pas fermé la balise link du css que tu ajoutes. La fermer devrait résoudre ton problème, je pense.

Pour ton problème de clear, quelques recherches sur le web devraient te permettre de localiser le problème. Je n'ai rien en tête directement, mais les float et clear ont toujours été un problème sur ces navigateurs, alors bon courage !!
Honte à moi pour la balise. Ce qui m’amène à une nouvelle réflexion.
Après correction, sous IE6 je n'ai toujours pas mon #pre-header et sous IE7 il apparaît tout à gauche (comme si il ne tenait pas compte du width:100%; et du repeat-x; pour le background).

Haaaa ils ne sont plus que 5% à utiliser IE7 et moins d'1% pour IE6, vivement qu'ils partent aux oubliettes !
Bonsoir,

Pour IE6 le defaut que tu décris n'a pas de solution sans modifier le flux de ton contenu (Opera avait le même défaut à l'époque). Les flottants reprennent leur position dans le flux derrière un flottant à la hauteur ou celui-ci se trouve sans se soucier d'un clear a appliqué ou non.

Pour le css, as tu bien fermé toutes tes accolades dans le fichier de style commun ?
(les validateurs du W3C sont bien utile pour vérifier les syntaxes)

L'idéal serait d'avoir une page en ligne pour la tester avec un vrai IE6 et un IE7.

Cordialement,
GC
GC,

Oui mon fichier CSS a ses accolades biens fermés (même si dans le copié / collé du code il manque la dernière effectivement).

Aurais-tu de quoi m'éclairer pour le changement de flux de mon contenu ? J'aimerai ne pas avoir recours à des tableaux.

Merci en tout cas pour tes explications.
bonjour,

Pour le flux il s'agit du document tout simplement.

par exemple:
<balise>1 en float</balise>
<balise> 2 en float et clear</balise>
<balise>3 en float et sans clear mais qui descend quand même sous balise 1 dans IE6</balise>
ton flux est 1,2,3.
en le passant en 1,3,2 tu peut obtenir ton visuel dans IE6 en souhaoitant que cela reste coherent au niveau du flux de ton document.

Tu peut aussi mettre 1 et 2 dans un flottant(sans les flotter ) et laisser 3 se positionné a coté.

Par ailleurs (et comme je ne vois pas trop de quel élément tu parle dans ta page, c'est pourquoi je te suggérais de mettre une page en ligne avec le défaut visible dans IE6/7 et bien repérer qui est en clear et qui doit flotter ou pas),
appliquer le "layout" a un élément modifie son comportement/interaction avec les flottants le précédent, il y a aussi d'autre imbrication de flottant casse-gueule a éviter pour IE6.

Cordialement,
GC
Merci je vais tester ça ! J'ai encore beaucoup de choses à apprendre Smiley smile
Modifié par Padaweb (27 Apr 2012 - 17:42)