HTML & CSS pour débutants

HTML & CSS pour les débutants (partie 36) : Le modèle de boîte

Toutes les vidéos du tutoriel

En CSS, les éléments sont généralement traités comme des boîtes rectangulaires ou des bandes. Pour décrire les boîtes, les propriétés suivantes - que vous connaissez sûrement maintenant - sont utilisées :

width – la largeur de l'élément
height – la hauteur de l'élément
left – la distance de la gauche
right – la distance de la droite
top – la distance du haut
bottom – la distance du bas
margin – la marge extérieure
border – le cadre autour de l'élément
padding – la marge intérieure, donc la distance entre le cadre et le contenu de l'élément

Ces propriétés ont déjà été présentées.

La largeur totale d'un élément est la somme des largeurs des spécifications individuelles. (Cela s'applique également à la hauteur).

Un exemple :

div#box {
   width: 100px;
   padding: 20px;     /* 20px à gauche et à droite /
   border: 2px solid; / 2px à gauche et à droite  /
   margin: 0 30px;    / 30px à gauche et à droite */
 }

Quelle est la largeur de cette zone div? Examinons les valeurs individuelles :

• 100 pixels

• 2 fois 20 pixels

• 2 fois 2 pixels

• 2 fois 30 pixels

Cela donne une largeur totale de l'élément de 204 pixels.

La largeur et la hauteur des éléments sont déterminées par width et height. Si ces spécifications ne sont pas explicites dans la feuille de style, les règles suivantes s'appliquent :

• En l'absence de width, la boîte est affichée aussi large que l'élément environnant.

• En l'absence de height, l'élément est affiché aussi haut que son contenu.

Un exemple :

<!DOCTYPE html>
 <html>
 <head>
 <meta charset="utf-8">
 <title>PSD-Tutorials.de</title>
 <style>
 div#box {
    border: 1px solid; /* 2px à gauche et à droite  */
    margin: 0 30px;    /* 30px à gauche et à droite */
    background-color:#6600CC;
 }
 </style>
 </head>
 <body>
 <div id="box">PSD-Tutorials.de</div>
 </body>
 </html>



Voici ce que cela donne dans le navigateur :

HTML & CSS pour débutants (Partie 36) : Le modèle de boîte



L'élément parent de l'élément div est body. Par conséquent, l'élément est effectivement aussi large que l'élément body. En ce qui concerne la hauteur, elle dépend du contenu.

Tout à zéro

Chaque navigateur a une feuille de style intégrée. Ces feuilles de style définissent certaines valeurs par défaut. Cela s'applique par exemple à padding et margin. Malheureusement, ces valeurs par défaut varient selon les navigateurs. Cela rend difficile d'obtenir des résultats identiques dans les différents navigateurs, notamment en ce qui concerne le modèle de boîte. Il est donc recommandé de mettre les marges par défaut définies par les navigateurs à zéro. Voici comment procéder :

* { padding: 0; margin: 0; }



Ajoutez cette ligne au début de votre feuille de style. Vous pouvez maintenant commencer à positionner les boîtes comme vous le souhaitez.

Types de boîtes

La façon dont un élément est finalement affiché et influence les autres éléments dépend du type d'élément. En fait, la spécification CSS distingue entre les éléments de type bloc et les éléments en ligne. (Il existe d'autres types, mais ils ne sont pas abordés ici car ils jouent un rôle mineur).

Les éléments de bloc créent toujours une nouvelle ligne. Les éléments suivants commencent également sur une nouvelle ligne. Les éléments de bloc typiques sont par exemple p, div, h1, ul, etc. Pour ces éléments, les propriétés précédemment énumérées s'appliquent aux marges extérieures, aux marges intérieures, à la hauteur, à la largeur et au cadre.

<h1>Digital Painting & Matte Painting: Bildaufbau definieren</h1>
<p>Modul 2 - Teil 2: Ein Bild ist immer ein Ganzes. Jedoch muss man sich immer überlegen, wo der Betrachter als Erstes hinsehen sollte.</p>

Un aperçu du résultat dans le navigateur montre que h1 et p créent chacun une ligne propre.

HTML & CSS pour les débutants (partie 36) : Le modèle de boîte



Les éléments en ligne, en revanche, ne créent pas leur propre paragraphe, mais sont plutôt affichés dans le flux de texte normal. Les éléments en ligne typiques sont span, em, strong, img, br, etc. Pour les éléments en ligne, il n'y a pas de marges extérieures verticales et pas de spécifications de largeur et de hauteur.

<h1><em>Digital Painting & Matte Painting</em>: Bildaufbau definieren</h1>

<p>Modul 2 - Teil zwei: <strong>Ein Bild ist immer ein Ganzes</strong>. Jedoch muss man sich immer überlegen, wo der Betrachter als Erstes hinsehen sollte.</p>

Et voici un aperçu du résultat:

HTML & CSS pour débutants (Partie 36) : Le modèle de boîte



Vous pouvez maintenant transformer des éléments qui sont normalement des éléments de bloc en éléments en ligne.

<!DOCTYPE html>
 <html>
 <head>
 <meta charset="utf-8">
 <title>PSD-Tutorials.de</title>
 <style>
 h1 {
 background-color:#00CCFF;
 }
 </style>
 </head>
 <body>
 <h1>Digital Painting & Matte Painting</h1>
 <p>Module 2 - Partie 2: <em>Une image est toujours un tout</em>. Cependant, il est toujours important de réfléchir à l'endroit où le spectateur devrait regarder en premier.</p>
 </body>
 </html>

Regardez le résultat dans le navigateur.

HTML & CSS pour les débutants (Partie 36) : Le modèle de boîte



La couleur de fond de l'en-tête h1 signifie que l'élément s'étend sur toute la largeur. La largeur est basée sur l'élément parent body.

Maintenant, entrons dans la propriété display.

<!DOCTYPE html>
 <html>
 <head>
 <meta charset="utf-8">
 <title>PSD-Tutorials.de</title>
 <style>
 h1 {
 display:inline;
 background-color:#00CCFF;
 }
 </style>
 </head>
 <body>
 <h1>Digital Painting & Matte Painting</h1>
 <p>Module 2 - Partie 2: <em>Une image est toujours un tout</em>. Cependant, il est toujours important de réfléchir à l'endroit où le spectateur devrait regarder en premier.</p>
 </body>
 </html>



Avec display: inline, la largeur de l'élément change.

HTML & CSS pour débutants (partie 36): Le modèle de boîte

En effet, maintenant la largeur de l'élément s'adapte au contenu existant. Voici un aperçu des valeurs que display peut prendre:

none – pas d'affichage

block – l'élément est affiché comme un élément de bloc, créant une nouvelle ligne.

inline – l'élément est affiché comme un élément en ligne, apparaissant dans le flux de texte en cours.

inline-block – externalement, l'élément est un bloc pour lequel la hauteur, la largeur et la marge extérieure peuvent être spécifiées. Cependant, chaque élément reste dans le flux de texte. Il s'agit donc d'une combinaison d'un bloc et d'un élément en ligne.

list-item – l'élément est affiché comme un élément de bloc. Mais en plus, un marqueur d'item est ajouté devant lui.

run-in – selon le contenu, l'élément peut être un bloc ou un élément en ligne.

table – fonctionne comme l'élément table connu en HTML.

inline-table – agit comme l'élément table en HTML, mais en ligne.

table-row – l'élément contient des éléments enfants disposés côte à côte. Fonctionne comme l'élément tr en HTML.

table-cell – l'élément représente une cellule de tableau et agit comme les éléments HTML th et td.

table-row-group – l'élément contient un groupe d'éléments avec plusieurs éléments enfants disposés côte à côte et fonctionne comme l'élément tbody en HTML.

table-header-group – l'élément contient un groupe d'éléments avec plusieurs éléments enfants disposés côte à côte et fonctionne comme l'élément thead en HTML.

table-footer-group – l'élément contient un groupe d'éléments avec plusieurs éléments enfants disposés côte à côte et fonctionne comme l'élément tfoot en HTML.

table-column – décrit les propriétés des cellules d'une colonne. table-column fonctionne comme l'élément col en HTML.

table-column-group – cet élément contient un groupe d'éléments qui décrivent les propriétés des cellules d'une colonne. Il agit comme l'élément colgroup en HTML.

table-caption – définit le titre du tableau. Cette propriété fonctionne comme l'élément HTML caption.

En réalité, CSS offre donc un large éventail d'options d'affichage pour différents types d'éléments, qui jouent un rôle crucial dans la position des éléments. Nous en parlerons davantage dans les prochains tutoriels.