Considérer un<card></card>
composant. Il ne devrait pas être directement adjacent à d'autres composants sans espacement. Cela s'applique à presque tous les composants. Alors, comment l'espacement des composants devrait-il être géré dans un système de conception?
Si l'espacement doit être appliqué directement sur le<card></card>
Utilisation des marges (par exemple, margin-block-end: 1rem; margin-inline-end: 1rem;
)? Ceci est problématique car il suppose le contexte du placement de la carte. Et si la carte est imbriquée dans un<grid></grid>
Composant qui utilise déjà gap: 1rem
? Cela crée des conflits et des valeurs d'espacement codées dures.
Plusieurs approches existent, chacune avec des compromis:
<card space="xxl"></card>
). Cela peut devenir verbeux, nécessitant potentiellement plusieurs accessoires pour différentes directions.<spacer></spacer>
ou<layout></layout>
uniquement pour l'espacement. Cela sépare proprement les préoccupations mais peut ajouter des éléments DOM inutiles et une complexité.La solution optimale est une question de débat. Bien que certains plaident entièrement pour éliminer les marges, une approche plus pragmatique consiste à séparer les préoccupations de mise en page et d'espacement de la fonctionnalité principale des composants. Les composants de contenu doivent être agnostiques à leur placement, permettant aux mécanismes de disposition de niveau supérieur de gérer l'espacement.
L'adoption croissante de gap
dans Flexbox et Grid suggère un éloignement de la compréhension uniquement des marges. Cette tendance s'aligne sur le désir de dispositions plus déclaratives et maintenables.
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!