*{
    padding: 0;
    margin: 0;
    box-sizing: border-box;
}

body{
    background: #222;
    color: #fff;
    font-family: Arial, Helvetica, sans-serif;
    display: flex;
    justify-content: center;
    align-items: center;
    /* display: flex; et justify content: center; 
    vont centrer l'élément sur la ligne
    horizontale*/
    height: 100vh;
    /*align-items: center et height: 100vh
    nous permettent de centrer notre élément
    verticalement*/
}
a {
    text-decoration: none;
    list-style-type: none;
    color: #fff;
}

ol {
    list-style: none;
    /*cette propriété supprime les tirets,
    les points ou les numéros qui sont
    avant les items dans une liste*/
    width: 400px;
    /*la largeur width est optionnelle :
    on peut la préciser ou pas*/
}
ol li {
    font-size: 1.2rem;
    font-weight: bold;
    background: #333;
    margin: 10px 0;
    /*le margin ici est de 10px à gache et à droite
    tandis que le top et le bottom sont à 0 */
    padding: 25px 30px;
    /*le padding est de 20px pout le top
    et le bottom, 30px pour le left et le right*/
    cursor: pointer;
    /*le curseur est pointer quand on le passe
    sur les éléments de la liste*/
    position: relative;
    /*relative et non pas absolute car relative
    va disposer la bordure par rapport à chaque
    élément et non pas par rapport à l'élément
    parent qui est le body dans notre cas*/
    transition: all .4s;
    z-index: 5;
}
ol li::before {
    /*::before est cette bordure qui va prendre
    place à gauche des éléments de notre liste
    et c'est grâce à cette propriété que l'on
    va pouvoir étendre la bordure jusqu'à ce qu'elle
    prenne la largeur de tout l'élément quand
    on le survole avec la souris*/
    /*à savoir qu'une simple bordure ne nous
    donnera pas le même résultat*/
    content: '';
    position: absolute;
    top: 0;
    left: 0;
    /*on va placer la bordure au top à gauche*/
    height: 100%;
    /*on donne à la bordure une hauteur de 100% 
    par rapport à l'élément de la liste*/
    width: 10px;
    /*on lui donne 5px de largeur*/
    background: rgb(232, 14, 14);
    transition: all .4s;
    z-index: -2;
}
ol li:hover::before {
    /*Quand je passe ma souris en hover sur l'élément
    je veux que le ::before(la bordure) occupe 100%
    de ce dernier*/
    width: 100%;
}

ol li:nth-child(1)::before {
    /*grâce à nth-child je vais pouvoir sélectionner
    le premier child se ol. D'ailleurs, j'ai précisé
    (1). Et j'ai également sélectionner mon élément
    before pour donner la même couleur aux deux
    à la fois: li et ::before*/
    background: red;
}

ol li:nth-child(2)::before {
    background:rgb(10, 152, 228);
}

ol li:nth-child(3)::before {
    background:rgb(10, 228, 72);
}

ol li:nth-child(4)::before {
    background:rgb(228, 10, 203);
}

ol li:nth-child(5)::before {
    background:rgb(224, 228, 10);
}

ol li:nth-child(6)::before {
    background:rgb(126, 10, 228);
}

ol li:hover {
    /*ici je vais décaler mes éléments vers la droite
    en les survolant un à un, et cela grâce à la
    propriété transform: translatex*/
    transform: translatex(20px);
}

