Intégration multimédia 1

582-125-HU

Semaine 7 - Mise en page

Balises universelles

Parfois, on voudra appliquer des styles sur une partie spécifique de notre page qui n'est pas nécessairement encadrée par une balise en particulier. On peut utiliser les balises universelles afin de regrouper des éléments d'une page comme on le désire.

Regrouper plusieurs balises à l'aide de <div>

La balise <div> permet de regrouper plusieurs autres balises ensemble. Il s'agit d'une balise dite block, au même titre que <main> ou <nav>.

<div>
    <p>Lorem ipsum...</p>
    <p>Lorem ipsum...</p>
    <p>Lorem ipsum...</p>
</div>

La plupart du temps, on va préférer utiliser les balises sémantiques (<main>, <article>, etc.) mais si il n'existe pas de bon choix, on peut utiliser un <div> plutôt.

Bordure

On peut appliquer une bordure à une balise à l'aide de la règle CSS border.

border
main {
    border: 1px solid red;
}

Dimensions

Largeur

On peut indiquer une largeur à un élément à l'aide de la règle CSS width. Toutes les unités standard CSS sont valides, mais les pixels et les pourcentages sont très souvent utilisés.

width
main {
    width: 800px;
}

Largeur minimale ou maximale

On peut également indiquer une largeur minimale ou maximale, qui permettra aux balises de se redimensionner par elles même tout en restant dans les limites imposées.

min-width
main {
    min-width: 600px;
}
max-width
main {
    max-width: 800px;
}

Hauteur

On peut indiquer une hauteur à un élément à l'aide de la règle CSS height. Toutes les unités standard CSS sont valides, mais les pixels et les pourcentages sont très souvent utilisés.

height
main {
    height: 800px;
}

Hauteur minimale ou maximale

On peut également indiquer une hauteur minimale ou maximale, qui permettra aux balises de se redimensionner par elles même tout en restant dans les limites imposées.

min-height
main {
    min-height: 600px;
}
max-height
main {
    max-height: 800px;
}

Marges

Marges intérieures

Il est possible d'appliquer des marges intérieures à une balise à l'aide de la règle CSS padding. Cette règle CSS peut être utilisée de différentes façon:

Il existe également des variantes pour chaque côté, soit padding-top, padding-bottom, padding-left, padding-right.

padding
main {
    padding: 20px;
}

Marges extérieures

Il est possible d'appliquer des marges extérieures à une balise à l'aide de la règle CSS margin. Tout comme padding, cette règle CSS peut être utilisée de différentes façon:

Il existe également des variantes pour chaque côté, soit margin-top, margin-bottom, margin-left, margin-right.

margin
p {
    margin-bottom: 20px;
}

Centrer un bloc

Il est souvent nécessaire de centrer un block de contenu sur une page. Ceci peut être accompli à l'aide d'une valeur spéciale de l'attribut margin. Les étapes à suivre sont:

  1. Donner une largeur fixe à votre bloc
  2. Appliquez des marges avec la valeur auto à gauche et à droite du bloc
    .conteneur {
        width: 800px;
        margin: 0 auto;
    }

Dépassement du contenu

Si l'on donne à nos balises des dimensions fixes, il est possible que leur contenu dépasse les dimenssions fournies. On peut gérer ce comportement à l'aide de la règle overflow.

overflow
p {
    overflow: auto;
}

Éléments flottants

Parfois, il peut être utile de faire "flotter" un élément. C'est souvent utile pour agencer une image dans un paragraphe.

float
<p>
    <img src="test.png" alt="">
    Lorem ipsum dolor sit amet...
</p>
p img {
    float: left;
}

Ceci peut toutefois entrainer un problème où le contenu qui est flotté peut dépasser des limites de la balise parent. Pour régler ce problème, on peut appliquer cette classe CSS clearfix à l'élément parent.

.clearfix:after {
   content: ".";
   visibility: hidden;
   display: block;
   height: 0;
   clear: both;
}
<p class="clearfix">
    <img src="test.png" alt="">
    Lorem ipsum dolor sit amet...
</p>

Exercise 1

Nous allons créer le squelette d'un site web en CSS. Créez une page web avec les éléments suivants:

Modèle flexbox

Afin d'aligner des balises blocs en CSS, on peut utiliser le modèle flexbox. Il est composé de plusieurs règles CSS qui nous permettront d'obtenir n'importe quel résultat.

Le guide Flexbox de CSS-Tricks est un excellent outil de référence pour les règles flexbox.

Afin d'utiliser flexbox, il faut définir un élément qui sera le parent tous les éléments qu'on désire aligner. Par exemple:

<div class="conteneur-flex">
    <div class="enfant enfant1">Enfant 1</div>
    <div class="enfant enfant2">Enfant 2</div>
    <div class="enfant enfant3">Enfant 3</div>
</div>

On utilise ensuite la règle CSS display: flex; afin de commencer à utiliser le modèle flexbox.

.conteneur-flex {
    display: flex;
}

Direction de l'axe principal

Par défaut, l'axe principal est horizontal de gauche à droite. On peut inverser cet ordre, ou encore y mettre un ordre vertical.

flex-direction
.conteneur-flex {
    display: flex;
    flex-direction: column;
}

Alignement sur l'axe principal

justify-content
.conteneur-flex {
    display: flex;
    justify-content: center;
}

Alignement sur l'axe secondaire

align-items
.conteneur-flex {
    display: flex;
    align-items: center;
}

Retour à la ligne

flex-wrap
.conteneur-flex {
    display: flex;
    flex-wrap: wrap;
}

Écart entre les éléments

gap
.conteneur-flex {
    display: flex;
    gap: center;
}

Exercise 2

Jouer à Flexbox Froggy.

Exercise 3

À partir du code réalisé à l'exercise 1, ajoutez les fonctionalités suivantes: