28220 sujets

CSS et mise en forme, CSS3

J'ai un site qui fait 760 pixels de large. Il y'a marqué 760 dans la CSS... et IE affiche un div de 761...
Vous voyez pas ce qui cloche dans le code ? Ou ce qu'il faudrait ajouter pour qu'IE apprenne à compter jusqu'à 760 ?

LE HTML
<!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" xml:lang="fr" lang="fra">
<head>
<title></title>
<meta http-equiv="Content-Type" content="text/html; charset=iso-8859-1" />
<link href="style/style.css" title="thin" rel="stylesheet" type="text/css" media="all" />
</head>

<body id="contenu"> 
<div id="global"> 
  <div id="header">
    <div id="courbe_rouge"></div>
    <div id="rechercher"> 
      <form action="recherche.php" enctype="multipart/form-data" method="post"> 
        <fieldset id="formrechercher"> 
          <legend>Rechercher</legend> 
          <p> 
            <label for="mot" title="Saisir un ou plusieurs mots">Saisir un ou plusieurs mots</label> 
            <input size="25" name="mot" id="mot" value="..." onBlur="if (this.value == '') {this.value = '...';}" onFocus="if (this.value == '...') {this.value = '';}" type="text" /> 
          </p> 
          <p> 
            <input name="submit" value="ok" class="bouton" type="submit" />
          </p> 
        </fieldset> 
      </form> 
    </div> 
    <div id="fond-rechercher"></div> 
    <hr /> 
    <div id="banner"><a href="#"><img src="images/npds_lune.gif" alt="Cliquez pour plus d'informations sur NPDS" height="60" width="468" /></a></div>
  </div> 
  <hr  /> 
  <div id="navbar">
    <ul> 
      <li id="nav_accueil" class="accueil"><a title="Retour à l'accueil du site" href="index.php">Accueil</a></li> 
      <li id="nav_technologie"><a href="#" title="Informations sur les technologies utilisées par NPDS pour gérer le design d'un site">Technologie</a></li> 
      <li id="nav_articles"><a href="topics.php" title="Tutoriaux, Astuces, Avis, Actualit&eacute;, D&eacute;veloppement">Articles</a></li> 
      <li id="nav_telechargements"><a href="download.php" title="Téléchargements">Téléchargements</a></li> 
      <li id="nav_support"><a href="forum.php" title="Les Forums de Styles NPDS">Support</a></li> 
    </ul> 
  </div> 
  <div id="degrade">
    <div id="degrade-menu"></div>
  </div>
  <hr  /> 
  <div id="main">
  </div>
  <!-- Footer --> 
  <div id="footer"> 
    <ul>
      <li><a href="#" title="Contacter l'administrateur du site">Contact</a> |</li> 
      <li><a href="#" title="Les archives du site">Archives</a> |</li> 
      <li><a href="map.php" title="Plan du site">Plan</a> |</li> 
      <li><a href="#top" title="Retour en haut de la page">Haut de page</a></li> 
    </ul> 
  </div>
</div> <!-- global -->
</body>
</html>


LA CSS
body{ background:#F9F9F9 url(../images/fond.gif) repeat-y top center; margin: 0; font-size: 100%; text-align:center;}
*{ font-family: Trebuchet MS, Arial, Helvetica, sans-serif; margin: 0; padding: 0; text-align: left;}
hr{ display: none;}
img{ border: 0;}

#global { position:absolute; left: 50%; margin-left: -380px; width: 760px;}

/* ------------------------ Header -----------------------------*/
div#header{ padding-left:20px; margin-bottom:7px; height:110px; background-image:url(../images/fond_header.gif); z-index:0;}
div#courbe_rouge{ position:absolute; width:36px; height:68px; margin-left:231px; margin-top:42px; background: url(../images/header_courbe_rouge.gif) no-repeat top left; z-index:110;}
/* -------------- Bannière */
#banner img{ right: 10px; top: 42px; position:absolute; border: 7px solid #FFF; width: 468px; height: 60px; z-index:100; background-color:#FFFFFF; }
/* -------------- Formulaire de recherche */
#rechercher{ font-size: 70%; position:absolute; width: 210px; height: 30px; top: 0px; right:0; z-index:60;}
#rechercher p{ display:inline;}
#rechercher input{ color:#000; vertical-align: middle;display:inline; border: 1px solid #333; height: 16px; margin: 0 0 0 15px;font-size: 100%; padding: 0 0 0 5px;}
#rechercher input.bouton{ margin: 0; padding: 0; height: 18px; vertical-align:middle; background-color: #fff; color: #000; width: 20px; text-align: center; }
#rechercher fieldset#formrechercher label{ display: none;}
#rechercher legend{ color:#fff; display: block;border: 0 none; font-weight:bold; padding: 0 0 0 15px}
#rechercher fieldset{ border: 0 none;}
#rechercher a{ color: #fff;}
#rechercher a:hover{ color: #fff; text-decoration: none;}
/* ------------------------ Navigation horizontale -----------------------------*/
#navbar{ background: url(../images/navbar_bleu.gif) repeat-x top right; height: 31px; width:auto;}
#navbar ul { display: inline; border: none; list-style: none;} 
#navbar ul li { float: left; font-weight: bold; display: inline;}
#navbar ul li#nav_accueil{ width: 90px; background: url(../images/navbar_orange.gif) repeat-x;}
#navbar ul li#nav_technologie{ width: 120px;}
#navbar ul li#nav_articles{ width: 90px;}
#navbar ul li#nav_telechargements{ width: 160px;}
#navbar ul li#nav_support{ width: 90px;}
#navbar ul li a{ text-decoration: none; color: #FFF; font-size: 100%; display:block; height:27px; padding: 4px 0 0 0; text-align:center;}
#navbar ul li a:hover{ background: url(../images/navbar_jaune.gif) repeat-x; text-decoration:underline;}
/* -------------- Dégradé sous la navigation horizontale */
#degrade{background:url(../images/degrade_motif.gif) top; height:22px;}
#degrade-menu{ background:url(../images/degrade_menu.gif) no-repeat top right; width:auto; height:22px;}

/* ------------------------ Partie principale de la page -----------------------------*/
#main{ padding: 0 8px 0 8px; }
/* ------------------------ Footer -----------------------------*/
#footer ul { bottom:0px; text-align:center; padding: 3px 0 3px 0; background: #DEDEDE url(../images/fond_menu.gif);}
#footer li{ text-align:center; display: inline; font-size: 70%; }
#footer a{ color: #000; text-decoration: underline;}
#footer a:hover{ color: #202D35; text-decoration: none; }

Merci 1000 fois d'avance de votre aide Smiley smile

ps : Si vous préfèrez voir la chose : http://styles.npds.org/test/01/
Raphael a écrit :
Le code est difficilement lisible, donc j'avoue ne pas avoir regardé en détail, mais... utilises-tu des paddings ou borders ?

J'ai mis défini de "manière universelle" les padding et margin à 0
*{ font-family: Trebuchet MS, Arial, Helvetica, sans-serif; margin: 0; padding: 0; border: 0; text-align: left;}

J'ai une marge pour le centrage :
#global { position:absolute; left: 50%; margin-left: -380px; width: 760px;}
J'ai le "positionnement" du header
div#header{ padding-left:20px; margin-bottom:7px; height:110px; background-image:url(../images/fond_header.gif); z-index:0;}

J'ai un padding et un margin dans mon bouton rechercher
#rechercher input{ color:#000; vertical-align: middle;display:inline; border: 1px solid #333; height: 16px; margin: 0 0 0 15px;font-size: 100%; padding: 0 0 0 5px;}

Enfin j'ai quelque padding et margin à l'intérieur du div...
Salut,

En fait, il s'agit d'un problème récurrent qui peut survenir dans tous les navigateurs, mais en général il survient quand on travaille avec des dimensions en em ou en % (pb d'arrondi). Pour s'en rendre compte, il suffit d'étirer ou de réduire en largeur la fenêtre d'IE pour voir apparaître ou disparaître le problème (@Ricou13)

Pour Firefox en effet, il semble que ce cas de figure ne génère pas le problème, mais essayes ça tu verras la galère :

http://www.positioniseverything.net/round-error.html
Sauf que là ce sont des pixels...

Edit : Effectivement suivant la taille de la fenetre le décalage apparait et disparait... Y'a pas de solution ???
Modifié par iPomme (14 May 2005 - 11:17)
Ok, en tatonnant j'ai tenté un truc qui marche (à mon grand étonnement), ce qui me conforte dans l'idée d'un problème de calcul :

- Taille ton #global à 761px au lieu de 760px et - sauf erreur de ma part - ça passe dans FF et dans IE

Smiley biggrin
Ah oui j'avais oublié de le dire ça... J'avais vu ouais. Mais c'est vraiment pas possible de le faire en 760 ? J'hallucine qu'on fasse la promotion d'un language qui affiche meme pas un carré de 760pixels normalement...
Euh.... Smiley rolleyes

Le language n'a rien à voir là-dedans, c'est plutôt celui qui l'interprète, donc le navigateur, et en l'occurence IE pour ton cas, même si les navigateurs gecko (FF) ont le même type de problème dans d'autres cas de figures. L'avantage de l'open-source sur IE ici, c'est la capacité de réactivité et la forte volonté de respect des standards, c'est pourquoi il faut aider la communauté qui développe, notamment en signalant systématiquement les bugs énervants comme celui-là (=> bugzilla).

Bonne continuation et ne te laisse pas démonter par les obstacles !

Smiley cligne
En fait IE décale tout d'un pixel vers la gauche en dehors de la fenetre...
J'suis en période d'exams j'retouche à ça en fin de semaine.
Je mettrais résolu qd ça le sera Smiley cligne