recherche
Maisoninterface Webtutoriel CSSComment ajouter des virgules entre une liste d'éléments dynamiquement avec CSS

Comment ajouter des virgules entre une liste d'éléments dynamiquement avec CSS

Supposons que vous ayez une liste d'éléments tels que les fruits: bananes, pommes, oranges, poires, nectarines.

Nous pouvons ajouter des virgules (,) directement dans HTML, mais voyons comment il peut être mis en œuvre dans CSS, ce qui nous donne plus de contrôle. Dans le même temps, nous devons également nous assurer que le dernier élément n'a pas de virgule.

J'ai récemment besoin de cette fonctionnalité dans un vrai projet, une partie de l'exigence est que tout projet de la liste peut être masqué / affiché via JavaScript. Indépendamment de quels éléments sont actuellement affichés, la virgule doit être affichée correctement.

Une solution plutôt élégante que j'ai trouvée consiste à utiliser un combinateur de frères et sœurs universels. Nous en discuterons plus tard. Commençons par un exemple de HTML. Supposons que vous commencez par une liste de fruits:

<code></code>
  • banane
  • pomme
  • orange
  • poire
  • nectarine

Et quelques CS de base pour le faire apparaître comme une liste:

 .fruits {
  Affichage: flex;
  rembourrage en ligne: 0;
  Style de liste: aucun;
}

.fruit {
  Affichage: aucun; / * Masquer par défaut * /
} 
.fruit.on {/ * classe ajoutée par JavaScript, utilisée pour afficher les éléments de liste * /
  Affichage: bloc en ligne;
}

Maintenant, supposons que quelque chose se passe à l'intérieur de cette interface, comme les commandes de changements d'utilisateur pour filtrer tous les fruits qui poussent dans les climats froids. Maintenant, les différents ensembles de fruits sont affichés, de sorte que la classe Fruit.on utilise l'API de la liste de classe pour fonctionner.

Jusqu'à présent, notre HTML et CSS créeront une liste comme ceci:

<code>香蕉橙子油桃</code>

Maintenant, nous pouvons ajouter des virgules et des espaces entre deux éléments sur des éléments à l'aide d'un combiner les frères universels:

 .fruit.on ~ .fruit.on :: avant {
  contenu: ', '; 
}

bien!

Vous vous demandez peut-être: pourquoi ne pas simplement appliquer une virgule à tous les éléments de liste, puis le supprimer du dernier élément avec quelque chose comme: dernier-enfant ou: dernier de type? Le problème avec cela est que le dernier élément enfant peut être dans un état "fermé" à tout moment. Donc, ce que nous voulons vraiment, c'est le dernier projet dans l'état "ouvert", qui n'est pas facile à mettre en œuvre dans CSS, car il n'y a pas de "dernier de classe" disponible. Par conséquent, des astuces de combinateur à usage général sont utilisées!

Dans l'interface utilisateur, j'ai utilisé la largeur maximale au lieu de l'affichage, et je l'ai basculé entre 0 et un maximum raisonnable afin que je puisse utiliser la transition pour afficher et masquer les éléments plus naturellement, ce qui permet aux utilisateurs de voir plus facilement les éléments qui sont ajoutés ou supprimés de la liste. Vous pouvez également ajouter le même effet au pseudo-élément pour le rendre super lisse.

Voici une démo avec quelques exemples légèrement différents. L'exemple de fruits utilise des classes cachées plutôt que sur les classes, tandis que l'exemple de légumes a des effets animés. SCSS est également utilisé pour la nidification:

J'espère que cela aide les autres à la recherche d'une solution similaire!

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
Le positionnement de l'ancre ne se soucie pas de l'ordre sourceLe positionnement de l'ancre ne se soucie pas de l'ordre sourceApr 29, 2025 am 09:37 AM

Le fait que le positionnement de l'ancrage évite l'ordre de source HTML est si CSS-y parce qu'il est une autre séparation des préoccupations entre le contenu et la présentation.

Que signifie marge: 40px 100px 120px 80px?Que signifie marge: 40px 100px 120px 80px?Apr 28, 2025 pm 05:31 PM

L'article traite de la propriété CSS Margin, en particulier "Marge: 40px 100px 120px 80px", son application et les effets sur la mise en page de la page Web.

Quelles sont les différentes propriétés de la frontière CSS?Quelles sont les différentes propriétés de la frontière CSS?Apr 28, 2025 pm 05:30 PM

L'article traite des propriétés des frontières CSS, en se concentrant sur la personnalisation, les meilleures pratiques et la réactivité. Argument principal: Border-Radius est le plus efficace pour les conceptions réactives.

Quels sont les arrière-plans CSS, énumérez les propriétés?Quels sont les arrière-plans CSS, énumérez les propriétés?Apr 28, 2025 pm 05:29 PM

L'article traite des propriétés de fond CSS, de leurs utilisations dans l'amélioration de la conception du site Web et des erreurs courantes à éviter. L'accent est mis sur la conception réactive en utilisant la taille de l'arrière-plan.

Quelles sont les couleurs CSS HSL?Quelles sont les couleurs CSS HSL?Apr 28, 2025 pm 05:28 PM

L'article traite des couleurs CSS HSL, de leur utilisation dans la conception Web et des avantages par rapport à RVB. L'objectif principal est d'améliorer la conception et l'accessibilité grâce à une manipulation intuitive des couleurs.

Comment pouvons-nous ajouter des commentaires dans CSS?Comment pouvons-nous ajouter des commentaires dans CSS?Apr 28, 2025 pm 05:27 PM

L'article traite de l'utilisation des commentaires dans CSS, détaillant les syntaxes de commentaires à ligne unique et multi-lignes. Il soutient que les commentaires améliorent la lisibilité, la maintenabilité et la collaboration du code, mais peuvent avoir un impact sur les performances du site Web si elles ne sont pas gérées correctement.

Que sont les sélecteurs CSS?Que sont les sélecteurs CSS?Apr 28, 2025 pm 05:26 PM

L'article traite des sélecteurs CSS, de leurs types et de l'utilisation pour le style des éléments HTML. Il compare les sélecteurs ID et classe et aborde les problèmes de performances avec des sélecteurs complexes.

Quel type de CSS détient la priorité la plus élevée?Quel type de CSS détient la priorité la plus élevée?Apr 28, 2025 pm 05:25 PM

L'article traite de la priorité CSS, en se concentrant sur les styles en ligne ayant la plus grande spécificité. Il explique les niveaux de spécificité, les méthodes de remplacement et les outils de débogage pour gérer les conflits CSS.

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

SublimeText3 Linux nouvelle version

SublimeText3 Linux nouvelle version

Dernière version de SublimeText3 Linux

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.

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.

Adaptateur de serveur SAP NetWeaver pour Eclipse

Adaptateur de serveur SAP NetWeaver pour Eclipse

Intégrez Eclipse au serveur d'applications SAP NetWeaver.

Envoyer Studio 13.0.1

Envoyer Studio 13.0.1

Puissant environnement de développement intégré PHP