copyrigh

00047374

Index de l'article
Comprendre le langage css
Blocs div emboités
Problème de float
Problème de margin
Conclusion

css positionnement

A ce niveau, on examinera un  autre problème que vous pouvez rencontrer lors de l'utilisation de la proprièté "margin". Le constat est fait lorsque vous tentez d'afficher votre page web sous firefox (3.0.8) ou google chrome (1.0.154.53).

Voici un exemple de page simple qui affiche un bloc  parent "conteneur" incluant un bloc fils "contenu". L'image suivante montre le résulat escompté:

tuto-margin-corrige.gif

Pour faire le test, créez une page html  avec un éditeur tel que notepad++ .  Placez  le corps suivant entre les balises <body> et </body>:

<body>

<div id="conteneur">

<div id="contenu">Contenu</div>

</div>


</body>

Pour la définition des styles css, vous pouvez placer le code suivant entre les balises <head> et </head> de votre page html:

<head>

<style type= "text/css">

body {                        
font-family: Tahoma, Arial, Verdana, sans-serif;
font-size: 20px;        /* taille de police  */
text-align: center;    /* texte centré */
color: blue;            /* texte de couleur bleue  */
}

A ce niveau, on a  défini les  paramètres du texte pour toute la page (style de balise body). Les commentaires placés entre /* et */ permettent d'avoir un code plus lisible.


#conteneur {
width:960px;
min-height:300px;                     /* hauteur minimale */

background-color:#A9A9A9;      /* fond coloré */

}

C'est la définition du bloc parent "Conteneur".

#contenu {
margin: 100px auto;     /* bloc centré avec une marge en haut et en bas de 100 pixels */

width:300px;
height:100px;
background-color:#98FB98;
}

Le bloc fils "Contenu" est centré dans le bloc parent avec une marge en haut et en bas de 100 pixels.

</style>

</head>

Lorsque vous tentez d'afficher votre page sous internet explorer 7, l'affichage semble être correct. Cependant avec mozilla firefox ou google chrome, la proprièté margin semble être appliquée au bloc "conteneur" plutôt qu'au bloc fils!. L'image suivante:

tuto-margin.gif

montre le résultat obtenu et que vous pouvez, vous même,  tester ici avec, bien entendu, mozilla firefox ou google chrome (versions précitées).

Pour corriger, vous devez définir une bordure de 1pixel pour le bloc parent "#conteneur".  Ajoutez, pour cela, la ligne suivante à votre code css au niveau du style id "#conteneur":

 

border-top: 1px solid transparent;

 

La bordure choisie est de couleur transparente.

Affichez maintenant la page ainsi modifiée. L'affichage est maintenant correct avec firefox et google chrome.