Hier, nous avons discuté de l’avenir de la mise en page CSS et de quelques-uns des nouveaux modules apportés par CSS3 dans ce domaine. L'un de ceux-ci que nous avons brièvement évoqué était CSS3 Flexbox.
Aujourd'hui, nous allons approfondir ce modèle et créer une page Web complète avec ce dernier. Il ne sera en aucun cas prêt à être mis en œuvre dans vos projets, mais il vous donnera une idée plus précise de la possibilité de coder des sites Web dans les années à venir. De plus, ce jeu est tout simplement amusant et amusant à jouer!
Très expérimental: Webkit uniquement
Mon objectif pour cet article était de faire fonctionner une page sous plusieurs navigateurs, cela ne s'est pas produit. À ce stade, la mise en œuvre est boguée et incohérente d’un navigateur à l’autre, même après l’installation de Flexie.js, Firefox et Safari obtenaient des résultats très différents (je pense que cela concerne le mélange de conteneurs typiques centrés sur les marges et de Flexbox).
Pour cette raison, le projet d'aujourd'hui visera principalement Safari et Chrome car franchement, c'est encore le bordel dans les autres navigateurs! Je vous encourage définitivement à suivre et à utiliser le produit fini pour voir si vous pouvez le mettre en œuvre dans une implémentation multi-navigateurs. Si vous avez des suggestions, j'aimerais les entendre dans les commentaires!
Étape 1: Classes réutilisables
Comme j'ai brièvement expliqué le concept de base de Flexbox dans le post d'hier, je me concentrerai sur la mise en œuvre ici. Mais ne vous inquiétez pas, vous devriez comprendre l'essentiel au fur et à mesure.
La première chose à faire est de créer des classes de base qui aideront à définir notre mise en page. Ces attributs peuvent être appliqués à un identifiant selon les besoins, mais je trouve cela utile et ordonné de le faire de cette façon.
Discutons comment ces classes fonctionnent. La première classe, hasflex, sera appliqué à un conteneur parent dont nous souhaitons disposer les enfants à l’aide de ce nouveau système Flexbox. Vous remarquerez une chose: toute cette conception sera complètement dépourvue de flotteurs, ce qui vous donne de bonnes indications quant à l'emplacement où nous allons implémenter Flexbox dans notre code.
Ensuite, nous avons mis en place quelques classes supplémentaires pour appliquer diverses méthodes. box-flex valeurs. Flexbox répartira facilement nos éléments enfants dans le conteneur et ceux-ci définiront les proportions. je croyez que la valeur par défaut est? 0? mais les résultats semblaient un peu déréglés par cette hypothèse, j'ai donc trouvé utile de toujours appliquer une valeur manuellement.
Étape 2: Initial HTML et CSS
Pour commencer votre document HTML, créez un conteneur et un en-tête. À ce stade, ce sont des éléments de base que nous allons construire comme toujours sans l'aide de Flexbox.
Une fois que vous avez cela en place, jetez les styles de base ci-dessous. Fondamentalement, j'ai mis en place un corps sombre avec un conteneur léger de 1 000 px qui contiendra tout notre contenu. Ajoutez quelques marges au centre et quelques styles de texte de base et nous sommes prêts à passer à la partie amusante.
Remarque: La police de titre que je vais utiliser est Oswald, de Google Fonts.
Étape 3: navigation
Maintenant, pour la zone de navigation, vous créez généralement une liste de liens, puis vous les faites flotter à gauche. Avec Flexbox, le processus est un peu différent. Ici, nous appliquons simplement le hasflex classe que nous avons créée plus tôt et utilisons box0 pour chacun des éléments de la liste. Appliquer box0 to all three a pour effet de faire flotter les liens vers la gauche mais de ne pas les distribuer sur toute la largeur du conteneur.
Après cela, nous appliquons simplement les mêmes types de styles que ceux appliqués à n’importe quelle autre page Web. L'objectif principal ici est d'espacer un peu les liens avec quelques marges et de nous assurer que nos liens sont correctement stylés.
Étape 4: l'image
Toute bonne page Web a besoin d'une image. Pour illustrer davantage la manière dont vous appliquez sélectivement Flexbox uniquement aux éléments qui en ont besoin, nous intégrons une grande image d'en-tête utilisant le même code exact que vous le feriez normalement.