recherche
Maisoninterface Webtutoriel CSSRevisiter la disposition CSS multi-colonnes

Revisiting CSS Multi-Column Layout

Près de deux décennies se sont écoulées depuis que mon premier livre, transcendant CSS , a exploré le module de mise en page multi-colonnes alors-novel. Une version en ligne mise à jour et disponible librement, transcendant CSS Revisited , offre une perspective contemporaine. Mon arrière-plan en imprimé a probablement alimenté mon enthousiasme initial pour cette fonction CSS, permettant un contenu en colonnes sans balisage superflu. Malgré son utilisation cohérente dans mon travail, les colonnes CSS restent étonnamment sous-utilisées. Pourquoi?

lacunes de spécification

La disposition multi-colonnes souffre depuis longtemps et continue d'avoir des limitations importantes. Comme Rachel Andrew (maintenant un éditeur de spécifications) l'a souligné il y a cinq ans: le style direct des boîtes de colonnes individuelles n'est pas possible; La manipulation JavaScript ou les ajustements de l'arrière-plan, du rembourrage et des marges ne sont pas disponibles; et toutes les colonnes restent uniformément de taille. Seules les règles de colonne offrent des options de style.

Cela reste vrai. Le style sélectif, comme les couleurs d'arrière-plan alternant à l'aide de :nth-column(), est impossible. Alors que les règles de colonne permettent des variations border-style (pointillées, pointillées, solides, rainures, crête), l'absence de support border-image est déroutante, étant donné leur introduction presque simultanée. Ces imperfections existent, mais elles n'expliquent pas pleinement la négligence généralisée de cet outil précieux.

Incohérences historiques du navigateur

Les navigateurs plus anciens ignoraient souvent les propriétés de colonne non soutenues. Cependant, l'adoption précoce de la mise en page multi-colonnes a coïncidé avec une période où la cohérence entre les navigateurs croisés n'était pas une préoccupation primordiale pour de nombreux développeurs. Alors que le support initial du navigateur était incohérent, en particulier en ce qui concerne les ruptures de contenu, les navigateurs modernes offrent désormais une compatibilité généralisée. Pourtant, la perception des colonnes CSS comme "brisée" persiste parmi les développeurs avec lesquels j'ai parlé. Bien que des améliorations soient nécessaires, cela ne devrait pas entraver l'utilisation de ses aspects actuellement fonctionnels.

Préoccupations de lisibilité et de défilement

La sous-utilisation de la disposition multi-colonnes peut provenir non pas de défauts de spécification ou de problèmes de mise en œuvre, mais sur les défis de l'utilisabilité. Rachel Andrew a correctement souligné le potentiel de mauvaise lisibilité en raison d'un défilement vertical excessif dans la teneur en forme longue. C'est indéniablement une expérience de lecture négative.

Une considération attentive est cruciale, mais cela ne devrait pas être dissuasif. De mauvais choix de conception, tels que l'application de colonnes de manière inappropriée à de grandes quantités de texte sans éléments structurels, sont les vrais coupables. Les titres, les images et les citations peuvent s'étendre efficacement aux colonnes, améliorant la lisibilité. Combiné avec des requêtes de conteneurs et des unités de dimensionnement de texte modernes, il y a peu de raisons d'éviter la disposition multi-colonnes.

Une revue rapide des propriétés et des valeurs

Deux méthodes principales existent pour créer des colonnes: spécifiant le column-count ou définissant le column-width, permettant au navigateur de déterminer le nombre de colonnes. Je préfère column-width, en réglant une largeur (par exemple, 18rem) et en laissant le navigateur optimiser le nombre de colonnes.

le column-gap (gouttière) contrôle l'espacement entre les colonnes, utilisant idéalement des unités rem pour la proportionnalité de la taille du texte. Le column-rule ajoute une séparation visuelle avec une épaisseur personnalisable et border-style. Cette syntaxe simple contribue à sa facilité d'utilisation.

Pertenance accrue dans le CSS moderne

Au moment de transcendant CSS , de nombreuses fonctionnalités CSS modernes étaient absentes: rem et des unités de la fenêtre, des sélecteurs avancés comme :has(), des requêtes de conteneur, des requêtes multimédias pour la conception réactive, calc(), clamp(), la grille CSS et le flexion. Ces progrès améliorent les capacités de la disposition multi-colonnes.

rem et les unités de la fenêtre, associées à calc() et clamp(), activent le dimensionnement de texte réactif dans les colonnes. :has() permet la création de colonnes conditionnelle en fonction du contenu. Les requêtes de conteneurs activent la mise en œuvre de la colonne uniquement lorsque des espaces de conteneurs suffisants sont disponibles. L'intégration avec CSS Grid ou Flexbox débloque encore plus de dispositions créatives.

Application pratique: une mise en page réactive de l'article

Mon défi a été de créer une disposition d'article flexible et sans requête en média s'adaptant à la taille de l'écran et à la présence / absence de A <figure></figure>. Le texte en colonnes améliore la lisibilité, avec la taille du texte ajustant la largeur du conteneur, pas la largeur de la fenêtre.

Le HTML est simple: un élément <main></main> contenant un titre et des paragraphes, et éventuellement un <figure></figure>.

<main><h1 id="About-Patty">About Patty</h1>
<p>…</p></main><img  alt="Revisiter la disposition CSS multi-colonnes" >

Les styles de mise en page multicolonne sont appliqués à <main></main> en utilisant column-width (40ch), max-width (100ch) et des marges automatiques pour le centrage:

main {
  margin-inline: auto;
  max-width: 100ch;
  column-width: 40ch;
  column-gap: 3rem;
  column-rule: .5px solid #98838F;
}

flexbox est appliqué à <section></section> uniquement s'il contient un <figure></figure>:

section:has(> figure) {
  display: flex;
  flex-wrap: wrap;
  gap: 0 3rem;
}

min-width: min(100%, 30rem) assure la réactivité pour les deux <main></main> et <figure></figure>:

section:has(> figure) main {
  flex: 1;
  margin-inline: 0;
  min-width: min(100%, 30rem);
}

section:has(> figure) figure {
  flex: 4;
  min-width: min(100%, 30rem);
}

Cela élimine le besoin de requêtes multimédias. La taille du texte s'adapte à l'aide de requêtes de conteneur (container-type: inline-size;) et clamp() pour la mise à l'échelle réactive:

h1 { font-size: clamp(5.6526rem, 5.4068rem + 1.2288cqi, 6.3592rem); }
h2 { font-size: clamp(1.9994rem, 1.9125rem + 0.4347cqi, 2.2493rem); }
p { font-size: clamp(1rem, 0.9565rem + 0.2174cqi, 1.125rem); }

Le résultat est une disposition flexible s'adaptant à la taille et au contenu de l'écran, en utilisant efficacement la disposition multi-colonnes.

aborder les limitations passées

De nombreux articles mettent en évidence les défauts de la disposition multi-colonnes, en particulier les problèmes de défilement. La propriété column-span (pour les titres, les images, les citations pour courir les colonnes) l'atténute considérablement, ainsi qu'une conception de contenu minutieuse pour minimiser le défilement excessif.

Les titres et les chiffres orphelins sont traités en utilisant break-after: column;.

Une perspective renouvelée sur la mise en page multi-colonnes

Malgré ses limites d'âge et de passé, la disposition multi-colonnes reste sous-utilisée. Bien qu'il existe des défis, sa valeur et sa capacité à améliorer la conception restent. Il est temps pour un nouveau regard sur cet outil CSS puissant.

Ce qui précède est le contenu détaillé de. pour plus d'informations, suivez d'autres articles connexes sur le site Web de PHP en chinois!

Déclaration
Le contenu de cet article est volontairement contribué par les internautes et les droits d'auteur appartiennent à l'auteur original. Ce site n'assume aucune responsabilité légale correspondante. Si vous trouvez un contenu suspecté de plagiat ou de contrefaçon, veuillez contacter admin@php.cn
Style CSS de niveau supérieur pour les curseursStyle CSS de niveau supérieur pour les curseursApr 23, 2025 am 11:04 AM

Les curseurs personnalisés avec CSS sont excellents, mais nous pouvons faire passer les choses au niveau supérieur avec JavaScript. À l'aide de JavaScript, nous pouvons passer entre les états du curseur, placer du texte dynamique dans le curseur, appliquer des animations complexes et appliquer des filtres.

Worlds Collide: Détection de collision de l'ordre clé à l'aide de requêtes de styleWorlds Collide: Détection de collision de l'ordre clé à l'aide de requêtes de styleApr 23, 2025 am 10:42 AM

Les animations CSS interactives avec des éléments se ricochent semblent plus plausibles en 2025. Bien qu'il soit inutile de mettre en œuvre Pong dans CSS, la flexibilité et la puissance croissantes de CSS renforcent le soupçon de Lee selon lequel un jour, ce sera un jour

Utilisation du filtre de fond CSS pour les effets d'interface utilisateurUtilisation du filtre de fond CSS pour les effets d'interface utilisateurApr 23, 2025 am 10:20 AM

Conseils et astuces sur l'utilisation de la propriété CSS Back-Filter pour styliser les interfaces utilisateur. Vous apprendrez à superposer des filtres en toile de fond entre plusieurs éléments et à les intégrer à d'autres effets graphiques CSS pour créer des conceptions élaborées.

Smil sur?Smil sur?Apr 23, 2025 am 09:57 AM

Eh bien, il s'avère que les fonctionnalités d'animation intégrées de SVG n'ont jamais été obsolètes comme prévu. Bien sûr, CSS et JavaScript sont plus que capables de porter la charge, mais il est bon de savoir que Smil n'est pas mort dans l'eau comme précédemment

'Pretty' est dans l'œil du spectateur'Pretty' est dans l'œil du spectateurApr 23, 2025 am 09:40 AM

Yay, laissez-le saut pour le wat-wrap: joli atterrissage dans la technologie safari aperçu! Mais méfiez-vous qu'il est différent de la façon dont il fonctionne dans les navigateurs de chrome.

CSS-Tricks raconte xliiiCSS-Tricks raconte xliiiApr 23, 2025 am 09:35 AM

Cette mise à jour de CSS-Tricks met en évidence des progrès significatifs dans l'Almanac, des apparitions de podcast récentes, un nouveau guide CSS Counter et l'ajout de plusieurs nouveaux auteurs contribuant un contenu précieux.

La fonctionnalité @Apply de Tailwind est meilleure qu'il n'y paraîtLa fonctionnalité @Apply de Tailwind est meilleure qu'il n'y paraîtApr 23, 2025 am 09:23 AM

La plupart du temps, les gens présentent la fonctionnalité de Tailwind avec l'un des utilitaires à propriété unique de Tailwind (qui modifie une seule déclaration CSS). Lorsqu'il est présenté de cette façon, @Apply ne semble pas du tout prometteur. So évidence

Se sentir comme je n'ai pas de libération: un voyage vers les déploiements sainsSe sentir comme je n'ai pas de libération: un voyage vers les déploiements sainsApr 23, 2025 am 09:19 AM

Le déploiement comme un idiot se résume à un décalage entre les outils que vous utilisez pour déployer et la récompense en complexité réduite par rapport à la complexité ajoutée.

See all articles

Outils d'IA chauds

Undresser.AI Undress

Undresser.AI Undress

Application basée sur l'IA pour créer des photos de nu réalistes

AI Clothes Remover

AI Clothes Remover

Outil d'IA en ligne pour supprimer les vêtements des photos.

Undress AI Tool

Undress AI Tool

Images de déshabillage gratuites

Clothoff.io

Clothoff.io

Dissolvant de vêtements AI

Video Face Swap

Video Face Swap

Échangez les visages dans n'importe quelle vidéo sans effort grâce à notre outil d'échange de visage AI entièrement gratuit !

Outils chauds

MantisBT

MantisBT

Mantis est un outil Web de suivi des défauts facile à déployer, conçu pour faciliter le suivi des défauts des produits. Cela nécessite PHP, MySQL et un serveur Web. Découvrez nos services de démonstration et d'hébergement.

Version crackée d'EditPlus en chinois

Version crackée d'EditPlus en chinois

Petite taille, coloration syntaxique, ne prend pas en charge la fonction d'invite de code

ZendStudio 13.5.1 Mac

ZendStudio 13.5.1 Mac

Puissant environnement de développement intégré PHP

Navigateur d'examen sécurisé

Navigateur d'examen sécurisé

Safe Exam Browser est un environnement de navigation sécurisé permettant de passer des examens en ligne en toute sécurité. Ce logiciel transforme n'importe quel ordinateur en poste de travail sécurisé. Il contrôle l'accès à n'importe quel utilitaire et empêche les étudiants d'utiliser des ressources non autorisées.

SublimeText3 version Mac

SublimeText3 version Mac

Logiciel d'édition de code au niveau de Dieu (SublimeText3)