Mémos CSS
Bienvenue dans la section Mémos CSS !
Vous trouverez ici des bouts de code de base sur le css et un tas d'archives de bouts de front tels que des boutons.
Bienvenue dans la section Mémos CSS !
Vous trouverez ici des bouts de code de base sur le css et un tas d'archives de bouts de front tels que des boutons.
Il cible tous les éléments de la page. (il peut aussi être utilisé avec des sélecteurs d'enfants)
* {
box-sizing: border-box;
margin: 0;
padding: 0;
}
div * {
border: 1px solid black;
}
il sollicite trop lourdement le navigateur donc on évite de l'utiliser
Il cible le premier élément d'identifiant x qu'il rencontre.
Normalement, dans un code on ne doit pas trouver deux éléments ayant le même identifiant.
#mon_id { color: #fefefe; }<p id="mon_id"></p>
Il cible tous les éléments qui ont cette classe.
.text-blanc { color: #fefefe; }<p class="text-blanc"></p>
Il cible tous les éléments de cette catégorie.
span { color: blue; }<p> pas bleu </p> <span> bleu </span>
Sélectionne tous les éléments descendants d’un autre élément, peu importe leur niveau dans la hiérarchie.
div span { color: blue; }<div> <span> bleu </span> <p> <span> bleu </span> </p> </div> <span> pas bleu </span>
Sélectionne uniquement les enfants directs d'un élément.
div > span { color: blue; }<div> <span> bleu </span> <p> <span> pas bleu </span> </p> <span> bleu </span> </div> <span> pas bleu </span>
Sélectionne que l'élément qui est immédiatement précédé par le premier élément ciblé. Autrement dit, c'est le premier Y qui suit un X qui va être impacté.
p + span { color: blue; }<span> pas bleu </span> <p> <span> pas bleu </span> </p> <span> bleu </span>
Sélectionne tous les éléments frères qui apparaissent après un élément donné
p ~ span { color: blue; }<span> pas bleu </pan> <p> <span> pas bleu </pan> </p> <span> bleu </span> <span> bleu </span> <p> Paragraphe 2 </p> <span> bleu </span> <span> bleu </span>
Sélectionne tous les éléments qui ont l'attribut concerné.
button[type=submit] { border-radius: 20px; } div[data-categorie="maCatégorie"]{ color: blue; }<form> <button type="submit"> Bordures arrondies </button> </form> <button> Bordures pas arrondies </button> <div id="monId" class="maClasse" data-categorie="maCatégorie"> je suis bleu </div> <div id="monId" class="maClasse"> je suis pas bleu </div>
Pour plus de plaisirs, on peut complexifier la contrainte sur les attributs :
Les Pseudo-Classes représentent un état de l'élément, et sont appelées avec ":". Par exemple, :hover, :focus, :nth-child(), etc.
On va voir ici uniquement les principales pseudo-classes, il y en a d'autres, mais qu'on utilise plus rarement...
Cible l'élément racine du document (généralement <html>). Utilisé pour y déclarer des variables
:root {
--noir: #151515;
}
body{
color: var(--noir)
}
Appliqué lorsqu'un utilisateur survole un élément avec la souris.
button:hover {
background-color: lightblue;
}
:focus Sélectionne un élément a le focus (généralement après avoir cliqué sur un champ ou utilisé la touche "Tab").
:focus-within Cible un élément lorsqu'un de ses descendants a le focus.
input:focus {
outline: 2px solid blue;
}
form:focus-within {
border: 2px solid blue;
}
Appliqué lorsqu'un élément est activé, par exemple au moment où un bouton est cliqué et maintenu.
a:active {
color: red;
}
:link est utilisée pour cibler tous les liens qui ne sont pas encore cliqués.
:visited est utilisée pour cibler tous les liens qui ont été cliqués.
a:link {
color: red;
}
a:visted {
color: purple;
}
:nth-child(n) Cible l'enfant n d'un élément parent, où n peut être un nombre, odd (impair), even (pair), etc.
:first-child Cible le premier enfant d'un élément parent.
:last-child Cible le dernier enfant d'un élément parent.
:only-child Cible uniquement l'enfant unique d'un élément parent.
ol li:nth-child(2) { background-color: lightgray; } ul li:only-child { color: blue; }<ul> <li> bleu </li> </ul> <ul> <li> pas bleu </li> <li> pas bleu </li> </ul>
:nth-of-type(n) Cible le n-ème enfant de son type spécifique.
:first-of-type Cible le premier enfant d'un élément parent.
:last-of-type Cible le dernier enfant d'un élément parent.
p:nth-of-type(3) { color: blue; }<p> pas bleu </p> <p> pas bleu </p> <p> bleu </p> <p> pas bleu </p>
Cible tous les éléments qui ne correspondent pas au sélecteur fourni.
p:not(a:visited) {
color: blue;
}
Cible tous les éléments qui correspondent au sélecteur fourni.
p:has(span.maClasse) {
color: blue;
}
On va dire qu'on a survolé les plus "importants" mais il y en a encore beaucoup d'autres... voici une liste en vrac d'autres pseudo-classes, mais il y en a encore d'autres !
Les Pseudo-Elements représentent une partie d'un élément ou ajoutent du contenu, et utilisent désormais la notation "::". Par exemple, ::before, ::after, ::first-letter, etc.
On va voir ici uniquement les principaux pseudo-elements, il y en a d'autres, mais qu'on utilise plus rarement...
::before Insère un contenu avant le contenu d'un élément spécifié. Utilisé pour ajouter des éléments décoratifs ou du texte.
::after Insère un contenu après le contenu d'un élément spécifié. Souvent utilisé avec ::before pour des effets symétriques.
Dans les deux cas, on est obligé d'y spécifier un content (même vide si besoin) sinon... le pseudo-élément ne sera jamais visible !
Si on ne s'en sert pas pour du texte, mais pour la décoration / animation, on va généralement mettre le pseudo-élément en position absolute et l'élément parent en position relative.
before et after ont un passe-droit, ils sont les seuls pseudo-éléments qui peuvent être appelés avec ":" et "::".
.maClasse{
position: relative;
width: 100px;
height: 50px;
}
.maClasse::before{
content: "Attention : ";
font-weight: bold;
}
.maClasse:after{
content: "";
position: absolute;
top: 0;
left: 0;
background-color: rgba(0,0,0,.2);
}
Cible la partie d'un élément qui est sélectionné par l'utilisateur (par exemple, lors d'un surlignement avec la souris).
::selection {
background-color: yellow;
color: black;
}
::first-letter Cible la première lettre du premier bloc de texte dans un élément. Souvent utilisé pour des styles typographiques particuliers comme les lettrines.
::first-line Cible la première ligne d'un bloc de texte. Très utile pour appliquer des styles spécifiques à la première ligne seulement.
p::first-letter {
font-size: 2em;
color: red;
}
Cible le texte de l'attribut placeholder dans les champs de formulaire (<input>, <textarea>). Permet de styliser le texte indicatif.
input::placeholder {
color: grey;
font-style: italic;
}
Cible les puces des éléments de listes (ex: les petites boules de chaque li pour les ul).
li::marker {
color: red;
}