Il faut savoir que tous les blocs possèdent des marges. Il existe
2 types de marges :
- Les marges intérieures
- Les marges extérieures
Regardez bien ce schéma :
Sur ce bloc, j'ai mis une bordure pour qu'on repère mieux ses bords.
- L'espace entre le texte et la bordure est la marge intérieure (en vert).
- L'espace entre la bordure et le prochain bloc est la marge extérieure (en rouge).
En CSS, on peut modifier la taille des marges avec les 2 propriétés suivantes :
- padding : indique la taille de la marge intérieure. A exprimer en général en pixels (px).
- margin : indique la taille de la marge extérieure. Là encore, on utilise le plus souvent des pixels.
Les balises de type inline possèdent aussi des marges. Vous pouvez donc aussi essayer ces manipulations sur ce type de balise.
Pour bien voir les marges, prenons 2 paragraphes auxquels je mets simplement une petite bordure :
Code : CSS - Sélectionner | p
{
width: 350px;
border: 1px solid black;
text-align: justify;
}
|
Comme vous pouvez le constater, il n'y a par défaut pas de marge
intérieure (padding). En revanche, il y a une marge extérieure (margin).
C'est cette marge qui fait que 2 paragraphes ne sont pas collés et
qu'on a l'impression de "sauter une ligne".
Les marges par défaut ne sont pas les mêmes pour toutes les balises de type block. Essayez d'appliquer ce CSS à des balises <div> qui contiennent du texte par exemple, vous verrez que là il n'y a par défaut ni marge intérieure, ni marge extérieure !
Supposons que je veuille rajouter une marge intérieure de 12px aux paragraphes :
Code : CSS - Sélectionner | p
{
width: 350px;
border: 1px solid black;
text-align: justify;
padding: 12px; /* Marge intérieure de 12px */
}
|
Maintenant, je veux que mes paragraphes soient plus espacés entre eux. Je rajoute la propriété
margin pour demander à ce qu'il y ait 50px de marge entre 2 paragraphes :
Code : CSS - Sélectionner | p
{
width: 350px;
border: 1px solid black;
text-align: justify;
padding: 12px;
margin: 50px; /* Marge extérieure de 50px */
}
|
Eh oui,
margin (comme
padding d'ailleurs) s'applique aux 4 côtés du bloc.
Si vous voulez indiquer une marge en haut, en bas, à gauche et à droite,
il va falloir utiliser des propriétés plus précises... Le principe est
le même que pour la propriété
border, vous allez voir !
En haut, à droite, à gauche, en bas... Et on recommence !
L'idéal serait que vous reteniez les traductions suivantes en anglais :
- top : haut
- bottom : bas
- left : gauche
- right : droite
Comme ça, vous pouvez retrouver toutes les propriétés de tête.
Je vais quand même vous faire la liste des propriétés pour
margin et
padding, histoire que vous soyez sûrs que vous avez compris le principe.
Voici la liste pour
margin :
- margin-top : marge extérieure en haut.
- margin-bottom : marge extérieure en bas.
- margin-left : marge extérieure à gauche.
- margin-right : marge extérieure à droite
Et la liste pour
padding :
- padding-top : marge intérieure en haut.
- padding-bottom : marge intérieure en bas.
- padding-left : marge intérieure à gauche.
- padding-right : marge intérieure à droite.
Il y a d'autres façons de spécifier les marges avec les propriétés margin et padding. Par exemple :
margin: 2px 0 3px 1px;
... signifie "2px de marge en haut, 0px à droite (le px est facultatif), 3px en bas, 1px à gauche.
Autre notation raccourcie :
margin: 2px 1px;
... signifie "2px de marge en haut et en bas, 1px de marge à gauche et à droite".
Centrer des blocs
Il est tout à fait possible de centrer des blocs. C'est même très
pratique pour réaliser un design centré quand on ne connaît pas la
résolution du visiteur.
Pour centrer, il faut respecter les règles suivantes :
- Donnez une largeur au bloc (avec la propriété width)
- Indiquez que vous voulez des marges extérieures automatiques, comme ceci : margin: auto;
Essayons cette technique sur nos petits paragraphes :
Code : CSS - Sélectionner | p
{
width: 350px; /* On a indiqué une largeur (obligatoire) */
margin: auto; /* On peut donc demander à ce que le bloc soit centré avec "auto" */
border: 1px solid black;
text-align: justify;
padding: 12px;
margin-bottom: 20px;
}
|
Ainsi, le navigateur centre automatiquement nos paragraphes !
Il n'est cependant pas possible de centrer verticalement un bloc avec cette technique. Seul le centrage horizontal est permis.