recherche
Maisoninterface Webtutoriel CSSUn peu sur les bibliothèques de composants Web

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
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
Simulation du mouvement de la sourisSimulation du mouvement de la sourisApr 22, 2025 am 11:45 AM

Si vous avez jamais eu à afficher une animation interactive lors d'un discours en direct ou d'une classe, vous savez peut-être que ce n'est pas toujours facile d'interagir avec vos diapositives

Alimentation de recherche avec Astro Actions et Fuse.jsAlimentation de recherche avec Astro Actions et Fuse.jsApr 22, 2025 am 11:41 AM

Avec Astro, nous pouvons générer la plupart de notre site pendant notre version, mais avoir un petit peu de code côté serveur qui peut gérer les fonctionnalités de recherche en utilisant quelque chose comme Fuse.js. Dans cette démo, nous utiliserons du fusible pour rechercher un ensemble de «signets» personnels

Undefined: la troisième valeur booléenneUndefined: la troisième valeur booléenneApr 22, 2025 am 11:38 AM

Je voulais implémenter un message de notification dans l'un de mes projets, similaire à ce que vous verriez dans Google Docs pendant que un document enregistre. En d'autres termes, un

Pour défendre la déclaration ternairePour défendre la déclaration ternaireApr 22, 2025 am 11:25 AM

Il y a quelques mois, j'étais sur Hacker News (comme on le fait) et j'ai rencontré un article (maintenant supprimé) sur le fait de ne pas utiliser les déclarations. Si vous êtes nouveau dans cette idée (comme moi

Utilisation de l'API de discours Web pour les traductions multilinguesUtilisation de l'API de discours Web pour les traductions multilinguesApr 22, 2025 am 11:23 AM

Depuis les premiers jours de la science-fiction, nous avons fantasmé sur les machines qui nous parlent. Aujourd'hui, c'est monnaie courante. Même ainsi, la technologie de fabrication

Blocs de jetpack GutenbergBlocs de jetpack GutenbergApr 22, 2025 am 11:20 AM

Je me souviens quand Gutenberg a été libéré dans Core, parce que j'étais à WordCamp Us ce jour-là. Un certain nombre de mois se sont passés maintenant, donc j'imagine de plus en plus d'entre nous

Création d'un composant de pagination réutilisable dans VueCréation d'un composant de pagination réutilisable dans VueApr 22, 2025 am 11:17 AM

L'idée derrière la plupart des applications Web est de récupérer les données de la base de données et de la présenter à l'utilisateur de la meilleure façon possible. Quand nous traitons des données là-bas

En utilisant 'Box Shadows' et Clip-chemin ensembleEn utilisant 'Box Shadows' et Clip-chemin ensembleApr 22, 2025 am 11:13 AM

Laissez faire un peu étape par étape d'une situation où vous ne pouvez pas faire ce qui semble logique, mais vous pouvez toujours le faire avec la ruse CSS. En ce moment

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

Télécharger la version Mac de l'éditeur Atom

Télécharger la version Mac de l'éditeur Atom

L'éditeur open source le plus populaire

SublimeText3 version anglaise

SublimeText3 version anglaise

Recommandé : version Win, prend en charge les invites de code !

mPDF

mPDF

mPDF est une bibliothèque PHP qui peut générer des fichiers PDF à partir de HTML encodé en UTF-8. L'auteur original, Ian Back, a écrit mPDF pour générer des fichiers PDF « à la volée » depuis son site Web et gérer différentes langues. Il est plus lent et produit des fichiers plus volumineux lors de l'utilisation de polices Unicode que les scripts originaux comme HTML2FPDF, mais prend en charge les styles CSS, etc. et présente de nombreuses améliorations. Prend en charge presque toutes les langues, y compris RTL (arabe et hébreu) ​​et CJK (chinois, japonais et coréen). Prend en charge les éléments imbriqués au niveau du bloc (tels que P, DIV),

DVWA

DVWA

Damn Vulnerable Web App (DVWA) est une application Web PHP/MySQL très vulnérable. Ses principaux objectifs sont d'aider les professionnels de la sécurité à tester leurs compétences et leurs outils dans un environnement juridique, d'aider les développeurs Web à mieux comprendre le processus de sécurisation des applications Web et d'aider les enseignants/étudiants à enseigner/apprendre dans un environnement de classe. Application Web sécurité. L'objectif de DVWA est de mettre en pratique certaines des vulnérabilités Web les plus courantes via une interface simple et directe, avec différents degrés de difficulté. Veuillez noter que ce logiciel

MinGW - GNU minimaliste pour Windows

MinGW - GNU minimaliste pour Windows

Ce projet est en cours de migration vers osdn.net/projects/mingw, vous pouvez continuer à nous suivre là-bas. MinGW : un port Windows natif de GNU Compiler Collection (GCC), des bibliothèques d'importation et des fichiers d'en-tête librement distribuables pour la création d'applications Windows natives ; inclut des extensions du runtime MSVC pour prendre en charge la fonctionnalité C99. Tous les logiciels MinGW peuvent fonctionner sur les plates-formes Windows 64 bits.