⊗mkPmLtTCS 245 of 250 menu

Schéma de mise en page à deux colonnes de site en CSS

Créons une mise en page à deux colonnes du type suivant :

Pour commencer, créons la structure principale de la page :

<div id="wrapper"> <div id="header"> header </div> <div id="container"> <div id="content"> content </div> <div id="sidebar"> sidebar </div> </div> <div id="footer"> footer </div> </div>

Maintenant, appliquons des styles au wrapper, en le centrant sur l'écran :

#wrapper { width: 1000px; margin: 30px auto; border: 1px solid black; }

Définissons maintenant les styles de l'en-tête et du pied de page :

#header { height: 200px; border: 1px solid black; } #footer { height: 200px; border: 1px solid black; }

Comme vous le voyez, nous définissons une hauteur pour l'en-tête et le pied de page. Nous faisons cela car dans notre schéma, ils n'ont pas de contenu. En présence de contenu, il ne faut pas définir de hauteur pour les blocs - elle sera définie par leur contenu.

Notez également que nous ne leur définissons pas de largeur. En effet, l'en-tête et le pied de page sont des éléments de bloc et leur largeur sera automatiquement égale à la largeur du wrapper.

Ajoutons-leur un padding pour que le texte ne colle pas aux bordures :

#header { height: 200px; padding: 20px; border: 1px solid black; } #footer { height: 200px; padding: 20px; border: 1px solid black; }

Cependant, la présence de padding affectera négativement les dimensions des blocs - ils deviendront plus grands que prévu. Modifions le comportement de tous les blocs pour que le padding et les bordures n'élargissent pas nos blocs :

* { box-sizing: border-box; }

Maintenant, nous devons placer le contenu et la barre latérale sur une même ligne. Faisons cela à l'aide des flexbox :

#container { display: flex; }

Indiquons la largeur du contenu et de la barre latérale. La somme de leurs largeurs doit être égale à la largeur du wrapper :

#content { width: 800px; } #sidebar { width: 200px; }

Supposons que nous voulions créer un espace entre la barre latérale et le contenu. Dans ce cas, il faut appliquer une margin à la barre latérale. En même temps, nous devrons récupérer la largeur pour cette margin sur l'un des éléments. Prenons-la sur le contenu, en réduisant ainsi sa largeur :

#content { width: 780px; } #sidebar { width: 200px; margin-right: 20px; }

Ajoutons maintenant une hauteur, car nos éléments ne contiennent pas de contenu. Il suffit d'ajouter une hauteur à un seul élément, car le deuxième élément flex s'adaptera en hauteur (pourquoi ?). Ajoutons une hauteur au contenu :

#content { width: 780px; height: 700px; } #sidebar { width: 200px; margin-right: 20px; }

Ajoutons les styles restants au contenu et à la barre latérale :

#content { width: 780px; height: 700px; padding: 20px; border: 1px solid black; } #sidebar { width: 200px; margin-right: 20px; padding: 20px; border: 1px solid black; }

Voilà, notre mise en page est prête. Rassemblons tout le code :

<div id="wrapper"> <div id="header"> header </div> <div id="container"> <div id="sidebar"> sidebar </div> <div id="content"> content </div> </div> <div id="footer"> footer </div> </div> * { box-sizing: border-box; } #wrapper { width: 1000px; margin: 30px auto; border: 1px solid black; } #header { height: 200px; padding: 20px; border: 1px solid black; } #container { display: flex; } #content { width: 780px; height: 700px; padding: 20px; border: 1px solid black; } #sidebar { width: 200px; margin-right: 20px; padding: 20px; border: 1px solid black; } #footer { height: 200px; padding: 20px; border: 1px solid black; }
Français
AfrikaansAzərbaycanБългарскиবাংলাБеларускаяČeštinaDanskDeutschΕλληνικάEnglishEspañolEestiSuomiहिन्दीMagyarՀայերենIndonesiaItaliano日本語ქართულიҚазақ한국어КыргызчаLietuviųLatviešuМакедонскиMelayuမြန်မာNederlandsNorskPolskiPortuguêsRomânăРусскийසිංහලSlovenčinaSlovenščinaShqipСрпскиSrpskiSvenskaKiswahiliТоҷикӣไทยTürkmenTürkçeЎзбекOʻzbekTiếng Việt
Nous utilisons des cookies pour le fonctionnement du site, l'analyse et la personnalisation. Le traitement des données est effectué conformément à la Politique de confidentialité.
accepter tout personnaliser refuser