Maison interface Web tutoriel CSS Un peu sur les bibliothèques de composants Web

Un peu sur les bibliothèques de composants Web

Apr 03, 2025 am 09:42 AM

Un peu sur les bibliothèques de composants Web

Il y a eu beaucoup de nouvelles sur les composants Web récemment, et je les trierai ici.

Je pense que l'un des meilleurs scénarios d'application pour les composants Web est la bibliothèque de modèles. Au lieu de l'utiliser comme bootstrap<div> , ou utilisez-le comme Bulma<code><div> , il est préférable d'utiliser des éléments personnalisés, par exemple<code><designsystem-tabs></designsystem-tabs> . La nouvelle bibliothèque Shoelace utilise l'espace de noms sl pour définir ses composants. Il s'agit d'une bibliothèque de schéma qui est entièrement basée sur des composants Web, où les balises sont<sl-tab-group></sl-tab-group> élément.

Quels sont les avantages de faire cela? Tout d'abord, il introduit le modèle de composant. Cela signifie que si vous travaillez sur un composant, il aura un modèle et une feuille de style liée à son emplacement. En regardant l'implémentation interne de Shoelace, vous pouvez voir que tout est basé sur le pochoir.

Un autre avantage est que le composant peut utiliser (et utilise) un Dom Shadow. Cela fournit un mécanisme d'isolement directement de la plate-forme Web. Pour nous, les développeurs CSS, cela signifie que le style des balises dans le composant TAG est effectué en utilisant la classe .tab (wow, c'est tellement cool!), Mais c'est isolé dans ce composant. Même avec un tel nom générique, je n'affecterais pas accidentellement d'autres composants de la classe commune sur la page, et il n'y aurait pas de CSS externe pour interférer avec la structure interne ici. Shadow Dom est comme un mur de sécurité qui empêche les styles de fuir ou d'infiltration.

Je vois également le framework FAST¹ qui est également un ensemble de composants. Sa balise est définie comme<fast-tabs></fast-tabs> . Cela me rappelle un autre avantage des composants Web en tant que méthode de bibliothèque de schéma: il a l'impression qu'il est axé sur l'API, en commençant même par le nom du composant lui-même, ce qui est en fait ce que vous utilisez dans HTML. Les propriétés de cet élément peuvent être complètement personnalisées. La norme émergente semble être que vous n'avez même pas besoin d'ajouter data- préfixe aux propriétés personnalisées. Donc, si je veux faire un composant de balise, cela pourrait être<chris-tabs active-tab="lunch" variation="rounded"></chris-tabs> .

Peut-être le plus grand acteur utilisant des composants Web comme bibliothèque de schéma est ionique. Leurs étiquettes sont<ion-tabs></ion-tabs> , vous pouvez les utiliser sans impliquer d'autres cadres (bien qu'ils prennent en charge Angular, React et Vue en plus de leur propre pochoir). Ionic a fait de grands progrès dans les composants Web et a récemment pris en charge les parties de l'ombre. Voici à nouveau l'explication de Brandy Carney expliquant l'emballage:

Shadow Dom aide à empêcher les styles de fuir des composants et d'être appliqués accidentellement à d'autres éléments. Par exemple, nous attribuons .buttonclass à notre<ion-button></ion-button> Composants. Si l'utilisateur de framework ionique définit la classe .button sur l'un de ses propres éléments, dans les versions antérieures du cadre, il hérite du style de bouton ionique. parce que<ion-button></ion-button> C'est maintenant un composant Web Shadow, donc ce problème n'existe plus.

Cependant, en raison de cette encapsulation, le style ne peut pas pénétrer dans les éléments internes de la composante ombre. Cela signifie que si le composant de l'ombre rend des éléments dans son arbre d'ombre, l'utilisateur ne peut pas utiliser son CSS pour localiser les éléments internes.

L'encapsulation est une bonne chose, mais cela rend le style "plus difficile" (délibérément). Il existe un concept CSS important à comprendre: les propriétés personnalisées CSS peuvent pénétrer l'ombre DOM . Mais il n'est pas sage pour les gens de décider - je pense que c'est vrai - pour «varier» tout dans un système de conception. Au lieu de cela, ils donnent à chaque fragment HTML dans la pièce Shadow Dom, par exemple<div part="icon"> , ce qui nous permet de "accéder à l'extérieur" en utilisant CSS, par exemple <code>custom-component::part(icon) { } . Je pense que les crochets de style basés sur des pièces sont principalement bons et une solution sensée pour une bibliothèque de modèles comme celle-ci, mais j'avoue qu'une partie de cela me dérange. Le sélecteur fonctionne différemment que prévu. Par exemple, vous ne pouvez pas sélectionner le contenu conditionnellement. Vous ne pouvez pas non plus sélectionner des éléments enfants ou utiliser des cascades. En d'autres termes, c'est juste un seul-off, ou comme si vous passiez directement à travers le film avec vos mains. Vous pouvez atteindre l'avant et prendre quelque chose ou non, mais vous ne pouvez rien faire.

En parlant de choses qui mettent les gens en colère, Andrea GiamMarchi a un bon point de vue sur la situation actuelle des composants Web:

Chaque bibliothèque qui a commencé avec, y compris la mienne, suggère que nous devons importer la bibliothèque pour définir ce qu'on appelle un " élément personnalisé portable ".

Google recommande toujours d'utiliser le litre. Microsoft veut que vous utilisiez la vitesse. Le pochoir a ses propres composants. HyperHTML a ses propres composants. Personne n'utilise uniquement des composants Web "bruts". C'est très étrange! Le pire que je pense, c'est que les composants Web devraient être une chose de "plate-forme native", ce qui signifie que nous ne devrions pas avoir besoin de compter sur une technologie particulière pour les utiliser. Lorsque nous faisons cela, nous y sommes verrouillés comme l'utilisation de React ou quoi que ce soit d'autre.

Andrea présente quelques idées dans l'article, notamment en utilisant des bibliothèques nouvelles et plus petites. Je pense que ce que je veux voir est une bibliothèque de schéma qui n'utilise aucune bibliothèque.

  1. Fast s'appelle un "système d'interface" dans une phrase continue sur la page d'accueil, suivie d'un "framework d'interface utilisateur". Shoelaces s'appelle une "bibliothèque", mais je l'appelle une "bibliothèque de mode". Je pense que le «système de conception» est le terme le plus couramment utilisé pour décrire ce concept, mais est souvent plus étendu qu'une technologie particulière. Fast utilise ce terme dans le code lui-même pour désigner l'élément wrapper qui contrôle le sujet. Je ne pense pas que la terminologie entourant tout cela soit loin d'être certain.

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 de ce site Web
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

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

Bloc-notes++7.3.1

Bloc-notes++7.3.1

Éditeur de code facile à utiliser et gratuit

SublimeText3 version chinoise

SublimeText3 version chinoise

Version chinoise, très simple à utiliser

Envoyer Studio 13.0.1

Envoyer Studio 13.0.1

Puissant environnement de développement intégré PHP

Dreamweaver CS6

Dreamweaver CS6

Outils de développement Web visuel

SublimeText3 version Mac

SublimeText3 version Mac

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

Sujets chauds

Tutoriel Java
1653
14
Tutoriel PHP
1251
29
Tutoriel C#
1224
24
Cartes empilées avec un positionnement collant et une pincée de sass Cartes empilées avec un positionnement collant et une pincée de sass Apr 03, 2025 am 10:30 AM

L'autre jour, j'ai repéré ce morceau particulièrement charmant sur le site Web de Corey Ginnivan où une collection de cartes se cassent les uns sur les autres pendant que vous faites défiler.

Fontes variables de polices Google Fontes variables de polices Google Apr 09, 2025 am 10:42 AM

Je vois que Google Fonts a déployé un nouveau design (tweet). Comparé à la dernière grande refonte, cela semble beaucoup plus itératif. Je peux à peine faire la différence

Comment créer un compte à rebours animé avec HTML, CSS et JavaScript Comment créer un compte à rebours animé avec HTML, CSS et JavaScript Apr 11, 2025 am 11:29 AM

Avez-vous déjà eu besoin d'un compte à rebours sur un projet? Pour quelque chose comme ça, il pourrait être naturel d'atteindre un plugin, mais c'est en fait beaucoup plus

Guide des attributs de données HTML Guide des attributs de données HTML Apr 11, 2025 am 11:50 AM

Tout ce que vous avez toujours voulu savoir sur les attributs de données dans HTML, CSS et JavaScript.

Comment sélectionner un élément enfant avec l'élément de nom de première classe via CSS? Comment sélectionner un élément enfant avec l'élément de nom de première classe via CSS? Apr 05, 2025 pm 11:24 PM

Lorsque le nombre d'éléments n'est pas fixé, comment sélectionner le premier élément enfant du nom de classe spécifié via CSS. Lors du traitement de la structure HTML, vous rencontrez souvent différents éléments ...

Pourquoi les zones réduites pourpre dans la disposition Flex sont-elles considérées à tort «espace de débordement»? Pourquoi les zones réduites pourpre dans la disposition Flex sont-elles considérées à tort «espace de débordement»? Apr 05, 2025 pm 05:51 PM

Questions sur les zones de slash violet dans les dispositions flexibles Lorsque vous utilisez des dispositions flexibles, vous pouvez rencontrer des phénomènes déroutants, comme dans les outils du développeur (D ...

Une preuve de concept pour rendre Sass plus rapidement Une preuve de concept pour rendre Sass plus rapidement Apr 16, 2025 am 10:38 AM

Au début d'un nouveau projet, la compilation SASS se produit en un clin d'œil. Cela se sent bien, surtout quand il est associé à BrowSersync, qui recharge

See all articles