Flexbox est un excellent outil permettant de réduire le goot CSS et a du sucre intégré pour faire face à des choses comme la commande source et l'alignement. Mais cela n'offre aucune aide pour faire les mathématiques qui crée des tailles de colonne et de gouttière. Comme beaucoup d'experts indiquent à plusieurs reprises: Flexbox est agréable, mais ce n'est pas un système de grille.
Nous devrions utiliser Flexbox, mais nous ne devrions pas jeter les concepts de base derrière les systèmes de grille qui nous ont retiré de l'ère des «géocités» du design:
Nous pouvons utiliser l'un des nombreux systèmes de grille Flexbox, mais dans toute l'honnêteté, les styles derrière ceux-ci sont la plupart des grandes grilles à base de flotteur. Les auteurs ont simplement ajouté l'affichage: FLEX sur le conteneur, ainsi que des classes d'aide qui obfusent Flexbox Propriétés (par exemple, une classe comme .Grid-vertical-align-hid est une obscusation de Align-items: Centre ).
La seule différence est que maintenant les colonnes sont "fléchies", ce qui signifie que nous obtenons ce sucre que j'ai mentionné plus tôt. Mais cela ne résout toujours pas les principaux problèmes que les grilles sont confrontées aujourd'hui: les systèmes de grille émettent toujours une tonne de BLOAT CSS et les grilles sont toujours ennuyeuses.
Les auteurs de la grille distribuent généralement d'énormes packs de CSS pouvant compenser, ordre de source, alignement et redimensionnement en fonction de la taille de l'appareil arbitraire. Ils s'appuient sur GZIP pour atténuer certaines des dégâts, mais cela ne tout fait pas tout. Et si vous n'avez pas besoin de ces fonctionnalités supplémentaires?
En supposant que le cadre que vous utilisez actuellement offre des mélanges de grille, la meilleure solution pourrait être d'apprendre ceux-ci et de composer vos propres colonnes. Cela produit peu de gonflement, mais limite vos grilles à des fractions et ne vous propose pas beaucoup de mobilité entre différents cadres.
Sur le deuxième problème. Les concepteurs sont devenus mentalement enfermés pour effectuer toutes leurs décisions sur la base d'une combinaison de colonnes de taille égale. En conséquence, l'Internet entier commence à être flou dans une «pile sur mobile; 1/12 combinaisons de colonnes sur toute autre dystopie.
Flexbox introduit flexibilité , qui nous ont un peu libéré. Maintenant, nous pouvons définir des tailles qui ont l'air bien et remplissent l'espace restant avec un élément étiré, mais les gouttières sont-elles alignées de manière cohérente dans la page? Les domaines de contenu sont-ils aménagés avec une sorte de proportions à l'esprit, ou sommes-nous de retour à l'aperçonner?
La solution à ces deux problèmes est enveloppée dans une fonction appelée postcss-ant. Les plugins POSTCSS peuvent être utilisés avec une gamme d'outils de construction tels que WebPack, Gulp ou simplement la ligne de commande. fourmi mélange de manière transparente en CSS uni (ou tout préprocesseur) avec une API de manière trompeuse qui masque des dizaines d'huisson d'esprit calcaire formules. Il nécessite deux paramètres de type mixin pour chercher une pléthore de tailles respectueuses de la grille.
Un exemple peut rendre cela plus clair: largeur: tailles (1/2) obtenez (1) Retour Calc (99,99% * 1/2 - (30px - 30px * 1/2)) . Passons ça en bas:
Nous obtenons la largeur de chaque colonne dans une grille à deux colonnes avec une gouttière unique de 30 px entre eux:
.la grille {
Affichage: flex;
Flex-Wrap: enveloppe;
}
.demi {
largeur: tailles (1/2) obtenez (1); / * retourne calc (99,99% * 1/2 - (30px - 30px * 1/2)) * /
marge-droit: 30px; / * met une gouttière sur le côté droit de chaque colonne * /
}
.HALF: Nth-enfant (2n + 2) {/ * commence au 2e élément et commence à compter par 2s * /
Marge-droite: 0; / * supprime la dernière gouttière de chaque rangée * /
}
Cela donne déjà des concepteurs le pouvoir d'utiliser ces tailles partout où ils voient en forme, mais plongons plus profondément.
tailles (100px 1/2) obtenez (1) Retour 100px . Assez simple, mais pourquoi devrions-nous utiliser une fourmi pour revenir 100px ? Nous allons arriver à cela dans une seconde.
tailles (100px 1/2) obtenez (2) Retour Calc ((99,99% - (100px + (30px * 1))) * 1/2 - (30px - 30px * 1/2)) . Sainte Crap. Ant découvre la taille totale des nombres fixes, puis revenant 1/2 de tout ce qui est laissé trop - d'une manière de la nième réseau.
Nous pouvons utiliser ces calcaire formules pour créer une grille avec un 100px colonne et deux 1/2 colonnes comme si (je vais omettre le .la grille Styles pour sauver des arbres, mais assurez-vous de les inclure dans votre code):
.Fixé-taille {
largeur: tailles (100px 1/2) obtenez (1); / * retourne 100px (je sais qu'il semble idiot mais supporte avec moi un peu plus longtemps) * /
marge-droit: 30px;
}
.demi {
largeur: tailles (100px 1/2) obtenez (2); / * retourne calc ((99,99% - (100px + (30px * 1))) * 1/2 - (30px - 30px * 1/2)) * /
marge-droit: 30px;
}
.HALF: NTH-Child (3n + 3) {
Marge-droite: 0;
}
Maintenant, nous pouvons obtenir des tailles déjà irréalisables, mais ce n'est pas encore super flexible et peut nécessiter beaucoup d'écriture lorsqu'il s'agit de nombreuses tailles.
Les préprocesseurs et les postes postales ne s'entendent pas toujours - surtout lorsque la syntaxe personnalisée est impliquée. Heureusement, l'API de la fourmi est favorable au préprocesseur. Nous pouvons utiliser un parseur PostCSS-Parser comme PostCSS-SCSS avec un plug-in PreySSS, mais cette approche utilise beaucoup de plug-ins non finis / non sous-finis / hométacés qui mimalement Mimic Sass 'Fonctionnalité. J'ai trouvé le meilleur flux de travail est de:
Cela vous donne le meilleur de la syntaxe de préprocesseur avec tous les plugins PostCSS que vos désirs du coeur.
Maintenant pour les choses cool. Les préprocesseurs ont généralement un moyen de boucler un nombre spécifié de temps tout en fournissant un itérateur:
@for $ i de 1 à 3 {
Contenu: $ i; // retourne le contenu: 1; Contenu: 2; Contenu: 3;
}
Avec une petite connaissance des préprocesseurs, vous pouvez commencer à utiliser la fourmi de manière vraiment intéressante ...
$ Tailles: 100px 1/2 1/2;
$ gouttière: 30px;
$ Longueur: longueur ($ tailles);
.Column {
marge-droit: $ gutter;
@for $ i de 1 à $ longueur {
& amp;: nth-enfant (# {$ longueur} n + # {$ i}) {
largeur: tailles ($ tailles) Obtenez ($ i) gouttière ($ gouttière);
}
}
& amp;: nth-enfant (# {$ longueur} n + # {$ longueur}) {
Marge-droite: 0;
}
}
Maintenant, nos colonnes de taille irrégulière enveloppent les nouvelles lignes sans marquage supplémentaire. Allez-y et bricolez avec ce code. Essayez de varier de tailles, de gouttières et d'ajouter de nouvelles tailles (comme 100px Auto 100px).
C'est un modèle assez courant avec la fourmi, donc j'ai enveloppé dans une propriété qui fonctionne avec Vanilla CSS aussi:
.grid {
générer-grille: tailles (100px 1/2 1/2); / * Vous pouvez passer des options supplémentaires, mais le cueillette () n'est plus nécessaire. * /
}
Les nth grilles sont formidables lorsque vous connaissez la taille et le nombre d'éléments à passer, mais vous voudrez parfois créer un conteneur et vider des éléments de taille au hasard là-bas. Dans ces cas, marge négative Les grilles sont votre meilleur pari. Passer simplement marge négative Attendez de comme ça:
.grid {
marge: 0 -15px;
}
.Column {
largeur: tailles (1/3) obtenir (1) grille (marge négative);
marge: 0 15px;
}
Ces exemples n'étaient qu'un petit aperçu de toutes les choses cool postes-ant peuvent faire. Il dispose d'un couple de paramètres plus facultatifs et de nombreuses tâches d'erreur descriptives, mais vous êtes vrai pouvoir.
Les outils «muettes» qui renvoient simplement un peu de données sont toujours les meilleurs outils, car ils remettent le courant dans les mains du développeur. C'est ce que PostCsS-ant a été conçu pour faire. Si vous êtes intrigué, dirigez-vous vers Corysimmons.github.io/postcsss-ant Pour certaines démos fondues et doux docs.
Cet article a été publié à l'origine dans le numéro 286 du magazine Net, Achetez-le ici.
Articles Liés:
[DIX] [DIX] [DIX] [dix] (Crédit d'image: Ford / Joseph Ford) [DIX] Jamstack Est une..
[DIX] [DIX] [DIX] [dix] [DIX] VOUS POUVEZ FAIR BEAUCOUP AVEC CSS - Peut-ÊTRE PLUS QUE QUE VOUS NE POURRI..
[dix] [dix] [dix] [dix] Le directeur du groupe de laboratoires de Chaos Chris Nichols fera u..
[dix] [dix] [dix] [dix] Des scènes imaginées qui vous laissent avec un sentiment d'émerveillement ..
Chaque première installation de la peinture CLIP Studio implique une exploration excitée du sous-consommation de décoration. C'est un véritable smorgasbord de pinceaux de gobelets naturel..
[dix] [dix] [dix] [dix] Dans ce tutoriel, je vais vous montrer comment peindre des runes mystiques qu..
Adobe lance une nouvelle série de tutoriels vidéo aujourd'hui appelés le faire maintenant, ce qui vise à décrire comment créer des projets de conception spécifiques utilisant divers ..
[dix] [dix] [dix] [dix] Je suis un croyant ferme que vous ne devriez pas pesant purement sur des logi..