Design numérique

CSS / Commandes de base

Fonts

Ajouter une font

En css, nous allons toujours du général au particulier. Nous commençons donc par déclarer toutes nos fonts, pour ensuite pouvoir les utiliser dans le style.

@font-face{
    font-family: "hk-grotesk";
    src: url("../fonts/hk-grotesk/HKGrotesk-Regular.ttf");
}

Ce bloc de code permet d’appeler un fichier font avec l'architecture de fihciers suivantes, en supposant que nous travaiillons dans le fichier main.css

    /css
        main.css
    /fonts
        /hk-grotesk
            HKGrotesk-Regular.ttf

@font-face sert à charger une nouvelle font, que nous pourrons utiliser dans le style. En premier, nous donnons un nom à la font, avec l'attribut font-family. Ensuite, nous indiquons à l'ordinateur où se trouve la font, le chemin vers la font, ou l'url (l'adresse) de la font depuis le fichier style.css. Entre chaque slash, se trouve le nom des dossiers à parcourir pour attendre le fichier HKGrotesk-Regular.ttf. ../ signifie 'aller dans le dossier parent'. En langage humain, nous disons donc à l'ordinateur:

L'attribut qui sert à lui indiquer le chemin s'appelle src (pour source) et il est suivit de la valeur url(""), qui permet d'indiquer l'adresse correcte du fichier depuis le fichier css, décomposée ci-dessus.

Mettre en place des callbacks

Lorsque l'on appelle des fichiers de fonts en CSS, il est important de mettre en place des callbacks, c'est-à-dire des formats de subsitutions si le format de font le plus léger (woff2) ne peut être lu par le navigateur client. Il est donc courant d'avoir au moins 4 formats du même fichier de font, et de les appeller dans l'ordre d'optimisation (du plus léger au moins léger).

    /css
        main.css
    /fonts
        /hk-grotesk
            HKGrotesk-Regular.ttf
            HKGrotesk-Regular.woff
            HKGrotesk-Regular.woff2
@font-face{

    font-family: "hk-grotesk";
    src: url("../fonts/hk-grotesk/HKGrotesk-Regular.woff2") format("woff2"),
    url("../fonts/hk-grotesk/HKGrotesk-Regular.woff") format("woff"), 
    url("../fonts/hk-grotesk/HKGrotesk-Regular.ttf") format("truetype");
}

Ici, un exemple complet de font-face, important différents formats (woff2, woff, ttf) comme fallbacks, et mettant en place différents style ou graisse de la même font téléchargeable au format .zip.

Commandes CSS de base

color:

La commande color change la couleur du texte à l'intérieur d'une balise. Celle-ci accepte une couleur comme argument, dont les trois formes d'expression principales sont les suivantes:

    <div>Hello!</div>
    div{
        color: red;
    }

    div{
        color: rgb(255, 0, 0);
    }

    div{
        color: #FF0000;
    }

Ces trois commandes ont un résultat identique, à savoir donner la couleur rouge au texte présent à l'intérieur de tous les éléments html div et de ses decsendants.

font-size:

La commande font-size définit la taille de font à l'intérieur d'un élément. Celle-ci peut s'exprimer dans différentes unités, dans la liste complète est accessible ici : https://developer.mozilla.org/en-US/docs/Learn/CSS/Building_blocks/Values_and_units

    <div>Hello!</div>
    div{
        font-size: 100px;
    }

line-height:

La commande line-height définit la distance entre deux lignes de texte, ou ligne de base. Par défaut (si rien n'est spécifié), la ligne de base équivaut à 1.2 fois le corps de texte définit par font-size.

    <div>Hello!</div>
    <div>Hi!</div>
    <div>What is up?</div>
    div{
        font-size: 24px;
        line-height: 48px;
    }

background-color:

La commande background-color définit l'esthétique du fond d'un élément HTML. Celle-ci accepte une couleur pour valeur, sous le même forme que la commande color ci-dessus.

    <div>Hello!</div>
    div{
        background-color: yellow;
    }

    div{
        color: rgb(255, 255, 0);
    }

    div{
        color: #FFFF00;
    }

background-image:

La commande background-image définit une image de fond pour un élément HTML. Celle-ci accepte une url pour valeur, soit relative, soit absolue. Une url relative définit le chemin relatif depuis la feuille de style CSS, jusqu'à l'image de fond d'écran. Une url absolue définit le chemin absolue de l'image de fond d'écran sur le réseau.

    <body>Hello!</body>
    body{

        background-image: url("https://wallpapercave.com/wp/wp3873604.jpg");
    }

background-size:

La commande background-size définit la taille d'une image de fond pour un élément HTML. Celle-ci accepte une taille pour valeur :

    <body>Hello!</body>
    body{

        background-image: url("https://wallpapercave.com/wp/wp3873604.jpg");
        background-size: cover;
    }
    <body>Hello!</body>
    body{

        background-image: url("https://wallpapercave.com/wp/wp3873604.jpg");
        background-size: contain;
    }

background-repeat:

La commande background-repeat définit la répétition d'une image de fond pour un élément HTML. Celle-ci accepte un mot-clé pour valeur :

    <body>Hello!</body>
    body{

        background-image: url("https://wallpapercave.com/wp/wp3873604.jpg");
        background-size: contain;
        background-repeat: no-repeat;
    }

background-position:

La commande background-position définit la répétition d'une image de fond pour un élément HTML. Celle-ci accepte différents type de valeurs, listées ici: https://developer.mozilla.org/en-US/docs/Web/CSS/background-position.

    <body>Hello!</body>
    body{

        background-image: url("https://wallpapercave.com/wp/wp3873604.jpg");
        background-size: contain;
        background-repeat: no-repeat;
        background-position: center;
    }

margin:

La commande margin définit la distance entre un élément et ses voisins (parents, siblings).

    <h1>Hello!</h1>
    <p>Lorem ipsum dolor sit amet, consectetur adipiscing elit, sed do eiusmod tempor incididunt
    ut labore et dolore magna aliqua. Ut enim ad minim veniam, quis nostrud exercitation ullamco 
    laboris nisi ut aliquip ex ea commodo consequat. Duis aute irure dolor in reprehenderit in voluptate
    velit esse cillum dolore eu fugiat nulla pariatur. Excepteur sint occaecat cupidatat non proident,
    sunt in culpa qui officia deserunt mollit anim id est laborum.</p>
    body{
        background: lime;
    }

    h1{
        font-size: 24px;
        line-height: 48px;
        background: yellow;

        /* Notation des marges en quatre propriétés. */
        margin-top: 10px;
        margin-right: 10px;
        margin-bottom: 10px;
        margin-left: 10px;

        /* Notation des marges sur une ligne, 4 marges spécifiées. */
        /* margin: top right bottom left */
        margin: 10px 10px 10px 10px;

        /* Notation des marges sur une ligne, 2 marges spécifiées. */
        /* margin: top+bottom left+right */
        margin: 10px 10px;

        /* Notation des marges sur une ligne, 1 marge spécifiée. */
        /* margin: top+bottom+left+right */
        margin: 10px;

    }

    p{
        background: white;
    }

padding:

La commande padding définit la distance entre un élément et ses limites.

    <h1>Hello!</h1>
    <p>Lorem ipsum dolor sit amet, consectetur adipiscing elit, sed do eiusmod tempor incididunt
    ut labore et dolore magna aliqua. Ut enim ad minim veniam, quis nostrud exercitation ullamco 
    laboris nisi ut aliquip ex ea commodo consequat. Duis aute irure dolor in reprehenderit in voluptate
    velit esse cillum dolore eu fugiat nulla pariatur. Excepteur sint occaecat cupidatat non proident,
    sunt in culpa qui officia deserunt mollit anim id est laborum.</p>
    body{
        background: lime;
    }

    h1{
        font-size: 24px;
        line-height: 48px;
        background: yellow;

        /* Notation des paddings en quatre propriétés. */
        padding-top: 10px;
        padding-right: 10px;
        padding-bottom: 10px;
        padding-left: 10px;

        /* Notation des paddings sur une ligne, 4 paddings spécifiés. */
        /* padding: top right bottom left */
        padding: 10px 10px 10px 10px;

        /* Notation des paddings sur une ligne, 2 paddings spécifiés. */
        /* padding: top+bottom left+right */
        padding: 10px 10px;

        /* Notation des paddings sur une ligne, 1 padding spécifié. */
        /* padding: top+bottom+left+right */
        padding: 10px;

    }

    p{
        background: white;
    }

display:

La commande display définit le comportement d'un élément lorsqu'il est intégéré à un flux d'élements. Trois valeurs principales à cette commande :

    <body>
        <div>Hello!</div>
        <div>Salut!</div>
        <div>Hallo!</div>
    </body>
    div{

        display: block;
        margin: 10px;
        padding: 20px;
        background: yellow;

    }
    <body>
        <div>Hello!</div>
        <div>Salut!</div>
        <div>Hallo!</div>
    </body>
    div{

        display: inline;
        margin: 10px;
        padding: 20px;
        background: yellow;

    }
    <body>
        <div>Hello!</div>
        <div>Salut!</div>
        <div>Hallo!</div>
    </body>
    div{

        display: inline-block;
        margin: 10px;
        padding: 20px;
        background: yellow;

    }

width:

La commande width définit la taille de font à l'intérieur d'un élément. Celle-ci peut s'exprimer dans différentes unités, dans la liste complète est accessible ici : https://developer.mozilla.org/en-US/docs/Learn/CSS/Building_blocks/Values_and_units

    <body>
        <div>Hello!</div>
        <div>Salut!</div>
        <div>Hallo!</div>
    </body>
    div{

        display: block;
        margin: 10px;
        padding: 20px;
        width: 20%;
        background: yellow;

    }
    <body>
        <div>Hello!</div>
        <div>Salut!</div>
        <div>Hallo!</div>
    </body>
    div{

        display: inline-block;
        margin: 10px;
        padding: 20px;
        width: 20%;
        background: yellow;

    }
    <body>
        <div>Hello!</div>
        <div>Salut!</div>
        <div>Hallo!</div>
    </body>
    div{

        display: block;
        margin: 10px;
        padding: 20px;
        width: 200px;
        background: yellow;

    }

position:

La commande position définit la position d'un élément. Les quatre valeurs principales qu'elle peut prendre sont :

    <body>
        <p>Lorem ipsum dolor sit amet, consectetur adipisicing elit, sed do eiusmod
        tempor incididunt ut labore et dolore magna aliqua. 
        <span>Hello!</span>
        Lorem ipsum dolor sit amet, consectetur adipisicing elit, sed do eiusmod
        tempor incididunt ut labore et dolore magna aliqua.</p>
    </body>
    span{

        position: static;
        top: 20px;
        left: 20px;
        background: yellow;
        display: inline-block;

    }
    <body>
        <p>Lorem ipsum dolor sit amet, consectetur adipisicing elit, sed do eiusmod
        tempor incididunt ut labore et dolore magna aliqua. 
        <span>Hello!</span>
        Lorem ipsum dolor sit amet, consectetur adipisicing elit, sed do eiusmod
        tempor incididunt ut labore et dolore magna aliqua.</p>
    </body>
    span{

        position: relative;
        top: 20px;
        left: 20px;
        background: yellow;
        display: inline-block;

    }
    <body>
        <p>Lorem ipsum dolor sit amet, consectetur adipisicing elit, sed do eiusmod
        tempor incididunt ut labore et dolore magna aliqua. 
        <span>Hello!</span>
        Lorem ipsum dolor sit amet, consectetur adipisicing elit, sed do eiusmod
        tempor incididunt ut labore et dolore magna aliqua.</p>
    </body>
    span{

        position: absolute;
        top: 20px;
        left: 20px;
        background: yellow;
        display: inline-block;

    }
    <body>
        <p>Lorem ipsum dolor sit amet, consectetur adipisicing elit, sed do eiusmod
        tempor incididunt ut labore et dolore magna aliqua. 
        <span>Hello!</span>
        Lorem ipsum dolor sit amet, consectetur adipisicing elit, sed do eiusmod
        tempor incididunt ut labore et dolore magna aliqua.</p>
    </body>
    body{

        height: 500px;
    }

    span{

        position: fixed;
        top: 20px;
        left: 20px;
        background: yellow;
        display: inline-block;

    }