la programmation

Livre interactif CSS

La création de pages web avec un aspect similaire à des pages de livre avec une fonctionnalité de « flip » (ou retournement) peut être réalisée en utilisant CSS et HTML. Cette technique est souvent appelée « flipbook » ou « livre à feuilleter » en français. Elle permet de simuler la sensation de feuilleter les pages d’un livre physique, ce qui peut être utilisé pour présenter du contenu de manière interactive et attrayante sur le web.

Pour créer un tel effet, vous aurez besoin de diviser votre contenu en pages individuelles, puis d’appliquer des styles CSS pour les disposer en format de livre et pour permettre le « flip » lorsqu’on interagit avec la souris ou les touches du clavier. Voici un aperçu de la manière dont cela peut être accompli :

1. Structure HTML de base :

html
html> <html lang="fr"> <head> <meta charset="UTF-8"> <meta name="viewport" content="width=device-width, initial-scale=1.0"> <title>Livre à Feuilletertitle> <link rel="stylesheet" href="styles.css"> head> <body> <div class="flipbook"> <div class="page">Contenu de la première pagediv> <div class="page">Contenu de la deuxième pagediv> div> body> html>

2. Styles CSS pour le livre à feuilleter (styles.css) :

css
/* Styles généraux */ .flipbook { width: 600px; /* Largeur totale du livre */ height: 400px; /* Hauteur du livre */ perspective: 1000px; /* Effet 3D pour le flip */ } .page { width: 100%; /* Largeur de chaque page */ height: 100%; /* Hauteur de chaque page */ background-color: #fff; /* Couleur de fond des pages */ display: flex; align-items: center; justify-content: center; box-shadow: 0 0 10px rgba(0, 0, 0, 0.1); /* Ombre pour chaque page */ position: absolute; backface-visibility: hidden; /* Cache le dos de la page */ } /* Styles pour les pages impaires */ .page:nth-child(odd) { transform-origin: 0 50%; /* Point de rotation à gauche */ } /* Styles pour les pages paires */ .page:nth-child(even) { transform-origin: 100% 50%; /* Point de rotation à droite */ } /* Effet de retournement */ .page { transition: transform 0.5s; } /* Effet de retournement lors du survol */ .page:hover { transform: rotateY(180deg); }

Ce code HTML et CSS crée un livre à feuilleter de base avec deux pages, mais vous pouvez ajouter autant de pages que nécessaire en ajoutant simplement plus de divs avec la classe « .page ». Les pages impaires ont un point de rotation à gauche, tandis que les pages paires ont un point de rotation à droite, ce qui crée un effet de retournement réaliste lorsque vous interagissez avec le livre. L’effet de retournement est déclenché soit par le survol de la souris (dans cet exemple), soit par une interaction au clavier ou tout autre événement que vous souhaitez définir.

N’hésitez pas à ajuster les styles CSS selon vos préférences en termes de taille, de couleurs et d’autres aspects visuels pour correspondre au design de votre livre à feuilleter. Cette approche offre une façon ludique et interactive de présenter du contenu sur le web, simulant l’expérience de lecture d’un livre physique.

Plus de connaissances

Bien sûr, plongeons plus en détail dans la création d’un livre à feuilleter en utilisant CSS pour ceux qui cherchent à explorer cette technique de présentation web.

1. Structure HTML Avancée :

Pour rendre le livre à feuilleter plus dynamique, vous pouvez organiser votre HTML de manière à ce que chaque page soit une section de contenu distincte. Par exemple :

html
<div class="flipbook"> <div class="page"> <h1>Page 1h1> <p>Contenu de la première page...p> div> <div class="page"> <h1>Page 2h1> <p>Contenu de la deuxième page...p> div> div>

Chaque .page peut contenir du texte, des images, des vidéos ou tout autre contenu que vous souhaitez afficher.

2. Styles CSS Améliorés :

Pour un design plus élaboré, vous pouvez ajouter des styles supplémentaires pour améliorer l’apparence visuelle du livre à feuilleter. Par exemple :

css
/* Style général du livre */ .flipbook { width: 800px; height: 500px; perspective: 2000px; margin: 50px auto; } /* Style des pages */ .page { width: 100%; height: 100%; background-color: #f9f9f9; border: 1px solid #ddd; display: flex; flex-direction: column; justify-content: center; align-items: center; padding: 20px; box-sizing: border-box; font-family: Arial, sans-serif; text-align: center; box-shadow: 0 5px 15px rgba(0, 0, 0, 0.1); position: absolute; backface-visibility: hidden; transform-style: preserve-3d; } /* Effet de transition entre les pages */ .flipbook .page { transition: transform 0.5s ease; } /* Effet de retournement sur le survol */ .flipbook .page:hover { transform: rotateY(180deg); } /* Numérotation des pages */ .page h1 { margin-top: 0; } .page-number { position: absolute; bottom: 10px; right: 10px; color: #666; font-size: 14px; }

Ces styles ajoutent une bordure autour de chaque page, une marge intérieure pour le contenu, une ombre portée pour un aspect tridimensionnel et une numérotation des pages.

3. Interaction JavaScript :

Pour une expérience utilisateur plus interactive, vous pouvez ajouter du JavaScript pour permettre la navigation entre les pages au clic ou via des boutons de navigation. Voici un exemple simple utilisant JavaScript vanilla :

javascript
document.addEventListener("DOMContentLoaded", function() { const pages = document.querySelectorAll(".page"); let currentPage = 0; function showPage(pageIndex) { if (pageIndex >= 0 && pageIndex < pages.length) { pages[currentPage].style.transform = "rotateY(0deg)"; pages[pageIndex].style.transform = "rotateY(180deg)"; currentPage = pageIndex; } } document.getElementById("prev-btn").addEventListener("click", function() { showPage(currentPage - 1); }); document.getElementById("next-btn").addEventListener("click", function() { showPage(currentPage + 1); }); });

Cela permettrait d’ajouter des boutons « Précédent » et « Suivant » pour naviguer entre les pages. Assurez-vous d’ajouter les boutons correspondants dans votre HTML.

Conclusion :

En utilisant HTML, CSS et éventuellement JavaScript, vous pouvez créer des livres à feuilleter interactifs sur le web. Cette approche offre une manière créative de présenter du contenu, que ce soit pour des portfolios, des livres numériques, des catalogues interactifs, ou d’autres applications où une présentation immersive est souhaitée. N’hésitez pas à expérimenter avec les styles et les fonctionnalités pour créer l’effet désiré et offrir une expérience utilisateur engageante.

Bouton retour en haut de la page