Pour ce deuxième épisode (épisode 1), on commence avec un HTML plus avancé.
Laurène Ipsum, étudiante en graphisme - portfolio
jenseign
Laurène Ipsum, étudiante en design graphique en 2e année à l’ésad Amiens.
Actuellement à la recherche d’un stage d’un mois sur Paris, Lille ou Amiens pour la période juillet-août.
CSS, réglages et typographie
Choisir la typographie avant de coder permet de mieux ajuster votre mise en page. Dans le CSS, je commence mes projets par le réglage du box-sizing, puis de la famille de caractères.
/* la manière moderne de calculer les tailles */
html {
box-sizing: border-box;
}
*, *:before, *:after {
box-sizing: inherit;
}
body{
margin:0;
background: #eee;
font-family: 'Space Mono', monospace;
}
La grille automatique et centrée
Ma grille peut répéter son nombre de colonnes en auto-remplissage, ci-dessous j’obtiens une, deux, trois plus de colonnes de 400 pixels de large selon la taille de la fenêtre.
- 2 colonnes à 892px
- 3 à 1296px
- 4 à 1720px
- 5 à 2144px…
On gagne une colonne tous les 400 + 24px (largeur + gouttière).
grid-row-end:span 2; vous oblige à avoir 2 colonnes minimum !grid-template-columns: repeat(auto-fill, 400px);
Centrage des colonnes :
justify-content: center;
Combinaison des codes :
.grid{
display:grid;
grid-gap: 24px;
gap:24px;
justify-content: center;
margin:72px 0 24px 0;
padding:0 24px;
grid-template-columns: repeat(auto-fill, 400px);
grid-auto-rows: 288px;
grid-auto-flow: row dense;
}
.s{
grid-column-end: span 1;
grid-row-end:span 1;
}
.m{
grid-column-end: span 1;
grid-row-end:span 2;
}
.l{
grid-column-end: span 2;
grid-row-end:span 2;
}
L’entête
Si vous avez lu le code, des éléments sont là pour une future version mobile, nous allons les masquer temporairement.
.footer,
.mobile{
display:none;
}
Pour mettre un élément en position fixe sur toute la largueur, il faut définir plusieurs propriétés.
.header{
position:fixed; /* fixe */
z-index: 999; /* devant les autres */
top:0; /* à 0px du coin supérieur */
right:0; /* à droite */
left:0; /* et à gauche => 100% */
height:48px; /* pour le style */
background: #fff;
padding:0 24px;
box-shadow: 0 5px 15px rgba(0,0,0,0.05);
}
À cette étape, ça déborder, ce n’est pas centré, on va donc ajouter la grille auto-fill sur le header.
.header{
position:fixed;
z-index: 999;
top:0;
right:0;
left:0;
height:48px;
background: #fff;
padding:0 24px;
box-shadow: 0 5px 15px rgba(0,0,0,0.05);
/* la même grille que .grid */
display:grid;
grid-template-columns: repeat(auto-fill, 400px);
grid-gap: 24px;
gap:24px;
justify-content: center;
}
Finitions
La balise h1 possède des réglages CSS, ici je les change.
.header-logo{
margin:0;
font-size:1em; /* = 16px par défaut */
}
.header-flex{
grid-column: 1/-1; /* ce bloc s'étire sur les colonnes automatiques de la grille */
display:flex; /* technique flex pour faire un « trou » */
justify-content: space-between; /* le « trou » */
align-items: center; /* centrage vertical */
}
https://codepen.io/benoitwimart/full/bzYdPB
Suite dans l’épisode 3 (liens sur les projets, couleurs et version mobile).