<link>
<head>
de votre site, avant votre déclaration de feuille de style :<head>
…
<!-- Google Font -->
<link rel="preconnect" href="https://fonts.googleapis.com">
<link rel="preconnect" href="https://fonts.gstatic.com" crossorigin>
<link href="https://fonts.googleapis.com/css2?family=Roboto:wght@100;400&display=swap" rel="stylesheet">
<link rel="stylesheet" href="style.css">
</head>
@font-face
@font-face
[2] ¶Pour charger et utiliser une fonte perso, il faut avant tout génerer les fichiers nécessaires, qui seront hébergés sur notre site de la même façon que les autres fichiers ressources (images, sons, etc…).
Les formats acceptés sont le ttf
, otf
, woff
et woff2
. Pour assurer la meilleure compatibilité possible tout en permettant aux navigateurs récent de charger des fichiers mieux optimisé (plus léger, plus rapide à décoder, etc…), il est d’usage de déclarer du woff2
, woff
et otf
, dans cet ordre.
Pour déclarer la fonte, on rajoute un bloc @font-face
spécial en haut de notre CSS, afin de lier la description visuel de la fonte et ses fichiers :
@font-face {
font-family: 'MaFonte';
font-weight: normal;
font-style: normal;
src:
url('fonts/ma-fonte.woff2') format('woff2'),
url('fonts/ma-fonte.woff') format('woff'),
url('fonts/ma-fonte.otf') format('opentype');
}
@font-face {
font-family: 'MaFonte';
font-weight: 800;
font-style: normal;
src:
url('fonts/ma-fonte-black.woff2') format('woff2'),
url('fonts/ma-fonte-black.woff') format('woff'),
url('fonts/ma-fonte-black.otf') format('opentype');
}
body {
font-family: 'MaFonte';
}
strong {
font-family: 'MaFonte';
font-weight: 800;
}
position
¶Par défaut, un élément HTML se positionne automatiquement dans le flux de la page (de haut en bas). L’enchainement des éléments est déterminé par leur ordre dans la page HTML, et la seule possibilité de positionnement réside dans l’utilisation des propriétés de marge (margin
) et de dimensions (width
, height
).
Il est possible de retirer un élément du flux de la page en utilisation la propriété CSS position
.
position: absolute;
¶Un élément ayant comme propriété position: absolute
, sort du flux de la page pour se positionner au-dessus des autres éléments. Il n’interfère plus avec le reste des éléments, il est en quelque sorte sur un « calque » séparé.
Il est possible de modifier la position d’un élément absolute en utilisant les propriétés top
, right
, bottom
et `left.
Par exemple, pour positionner un div logo
à 50px
du coin haut gauche de ma page, je peux écrire :
.logo {
position: absolute;
top: 50px;
left: 50px;
}
Par défaut, l’élément absolute se place en rapport à l’élément html
. Il est possible de changer ce comportement en donnant la propriété position: relative;
à l’un de ces ancêtres.
position: fixed;
¶Un élément ayant comme propriété position: fixed;
, fonctionne comme un élément position: absolute;
, mais est cette fois positionné par rapport au viewport (la fenêtre dans laquelle la page est affichée), et n’est donc pas affecté par le défilement.
position: sticky;
¶Un hybride entre pas de position et une position: fixed;
. Un élément en position: sticky;
apparaît dans le flux de la page jusqu’à un seuil déterminé par sa popriété top
, à partir duquel il devient fixed
. Par exemple, les bandeaux de couleur sur chevalvert.fr.
z-index
¶Chaque élément qui sort du flux de la page (absolute
, fixed
, ou `sticky) occupe son propre calque, et n’intéragit plus avec les autres éléments de la page. Si vous commencez à avoir beaucoup d’éléments dans ce cas, il est possible que vous ayez besoin de contrôler quel élément passe par-dessus.
La propriété CSS z-index
permet de contrôler l’ordre des calques de votre page : plus la valeur du z-index
est grande, plus l’élément est « haut » sur la pile de calques, et plus il apparaîtra au-dessus des autres. Dans l’exemple ci-dessous, le div always-on-top
passera par-dessus le logo.
.always-on-top {
z-index: 999;
…
}
.logo {
z-index: 3;
…
}
transform
[3] ¶La propriété transform
permet de manipuler l’aspect d’un élément de façon très dynamique (rotation, translation, etc…). Sa syntaxe est un peu particulière, puisqu’il faut enchaîner les fonctions de transformations à l’intérieur de sa valeur :
.cool-div {
transform: rotate(…) translate(…) scale(…);
}
Voici la liste des fonctions disponibles :
fonction | exemples |
---|---|
rotate |
rotate(45deg) , rotate(0.5turn) |
translate |
rotate(45deg) , rotate(0.5turn) |
skew |
skew(10deg) , skew(10deg, 25deg) |
scale |
scale(2) , scale(1, 2) |
Attention : appliquer une transformation à un élément ne le sort pas du flux de la page. Si vous faîtes un translate(1000px)
, l’élément sera visuellement décalé de 1000px
mais la page se comportera comme s’il ne l’était pas.
@font-face
, MDN ↩︎