# HTML / CSS : Créer un magazine > Tutoriel pas-à-pas pour réaliser une mise en page de type magazine avec HTML et CSS. > Adapté en français du projet *Magazine* de la Raspberry Pi Foundation. --- ## Objectifs pédagogiques À la fin de ce projet, tu sauras : - structurer une page web avec des balises HTML ; - relier une feuille de style CSS à ta page ; - découper une page en **deux colonnes** ; - styliser des titres, des encadrés et des images ; - appliquer une **rotation** et une **ombre portée** à un élément ; - ajouter une petite **animation** pour finir. ## Ce dont tu as besoin - un navigateur web (Firefox, Chrome, Edge…) ; - un éditeur en ligne comme [trinket.io](https://trinket.io) — l'environnement de départ se trouve à l'adresse `https://trinket.io/embed/html/cef5e64bc0` ; - une image au format JPG ou PNG (par exemple une photo d'animal de compagnie). Tu peux aussi travailler en local avec un simple éditeur de texte (VS Code, Geany, Notepad++) et créer deux fichiers dans le même dossier : `index.html` et `style.css`. --- ## Étape 1 — Le squelette HTML et le titre On commence par poser le squelette de la page et lui associer une feuille de style externe. ```html

mon magazine

``` Dans `style.css`, on stylise le grand titre et le fond de la page : ```css h1 { text-align: center; color: white; background: teal; padding: 5px; } body { background: linear-gradient(to bottom right, lemonchiffon, white); padding: 15px; font-family: Carlito; } ``` **Ce que l'on a appris :** - `` connecte le HTML à la feuille CSS ; - `text-align`, `color`, `background` et `padding` modifient l'apparence d'un élément ; - `linear-gradient(...)` crée un dégradé pour le fond. > Astuce : `lemonchiffon` est un nom de couleur CSS standard. Si tu écris `lemnchiffon` (oubli du *o*), le navigateur ignore la règle silencieusement. --- ## Étape 2 — Créer les deux colonnes Une mise en page de magazine, c'est souvent deux colonnes côte à côte. On les déclare dans le HTML… ```html
``` … puis on les place avec du CSS : ```css .column1 { width: 48%; float: left; } .column2 { width: 48%; float: right; } ``` Pourquoi 48 % et pas 50 % ? Pour laisser un peu d'air entre les deux colonnes. La propriété `float` indique au navigateur de placer le bloc à gauche ou à droite, et de laisser le reste du contenu s'écouler autour. --- ## Étape 3 — Ajouter un premier article Chaque article du magazine sera contenu dans une `
`. On commence par un encart simple, dans la colonne de droite : ```html

Mignon le chaton !

``` Et on stylise les titres `h2` et les encadrés `.item` : ```css h2 { color: white; background: teal; padding: 5px; margin: 0px 0px 10px 0px; box-shadow: 2px 2px 2px gray; text-align: center; } .item { padding: 10px; margin-bottom: 10px; border: 3px dashed teal; } ``` À retenir : - `border: 3px dashed teal;` crée une bordure en **pointillés**. Essaie aussi `solid`, `dotted` ou `double` pour comparer. - `box-shadow` ajoute une ombre portée. Les deux premières valeurs sont le décalage horizontal et vertical, la troisième le flou. --- ## Étape 4 — Ajouter la photo On insère une image à l'intérieur de l'encart, et on lui donne la classe `photo` pour la styliser à part : ```html

Mignon le chaton !

``` Dans le CSS : ```css img { max-width: 100%; } .photo { box-shadow: 4px 4px 4px gray; transform: rotate(10deg); } ``` Deux notions importantes ici : - `max-width: 100%` empêche l'image de **déborder** de son encart, quelle que soit sa taille d'origine ; - `transform: rotate(10deg)` incline l'image de 10 degrés vers la droite — comme une polaroïd collée de travers sur un cahier. Essaie `-10deg` pour la pencher dans l'autre sens. > Si tu travailles sur trinket.io, glisse ton image dans le panneau de fichiers à gauche et utilise exactement le même nom dans l'attribut `src`. --- ## Étape 5 — Ajouter d'autres articles Le principe est désormais simple : à chaque fois que tu veux un nouvel article, tu copies un bloc `
` et tu remplaces son contenu. Tu peux les répartir librement entre `column1` et `column2`. Quelques idées d'éléments à mettre dans un `.item` : - un titre `

` ; - un paragraphe `

` ; - une image avec la classe `photo` ; - une liste `