Maison interface Web tutoriel CSS % CSS : comportement knock-out de la bordure de pour n'importe quel élément !

% CSS : comportement knock-out de la bordure de pour n'importe quel élément !

Jan 08, 2025 pm 04:09 PM

La légende raconte qu'un jour viendra où le magnifique effet de suppression de bordure de champs sera possible avec n'importe quel élément HTML.

Et j'ai une excellente nouvelle : dans Chrome, ce jour est aujourd'hui !

Ensemble de champs ? Légende?

Si vous n'êtes pas familier, voici l'effet de suppression de bordure sur un ensemble de champs avec une légende :

a picture of two simple fieldset elements with their legend (titles) leaving a gap the width of their text in the fieldset's borderexemples de légendes d'ensembles de champs dans une capture d'écran légèrement modifiée de VanillaHTML

La largeur de la légende (titre) coupe automatiquement un trou dans la bordure de l'ensemble de champs.

Bien que techniquement possible, il suffit d'utiliser

et n'importe où, il n'est généralement pas recommandé d'utiliser un
en dehors d'un et sans aucune éléments à l'intérieur, car l'objectif principal d'un ensemble de champs est de regrouper sémantiquement les entrées de formulaire liées. Son utilisation dans des contextes sans rapport va à l’encontre de son sens prévu et peut avoir un impact négatif sur l’accessibilité pour les lecteurs d’écran.

Comportement de suppression de la légende de la bordure du jeu de champs n'importe où

Ce n'est pas trivial à réaliser, j'ai donc caché toute la complexité que je pouvais pour que ce soit aussi trivial à reproduire :

  1. @importez l'utilitaire Fieldset-Legend dans votre CSS.
  2. Ajouter la classe Fieldset-Legend au wrapper
  3. Définissez la propriété --fl-left sur n'importe quel valeur (même des valeurs négatives si vous le souhaitez)

Et la bibliothèque positionnera le :first-child de sorte qu'il soit centré verticalement avec le haut de l'élément et éliminera les éléments derrière lui !

Pour créer un espace autour du titre, ajoutez un remplissage au :first-child comme vous le souhaitez.

Le plus gros problème ici est que vous ne pouvez pas placer les nœuds de texte brut directement dans le wrapper Fieldset-Legend, le texte doit être imbriqué à l'intérieur de leurs propres éléments.

De plus, techniquement la bordure de l'ensemble de champs ne s'enfonce au bas de l'élément de légende et ne coupe pas également l'arrière-plan, comme c'est le cas ci-dessus.

Si vous préférez que le knock-out ne coule qu'à travers la bordure, vous pouvez fournir une propriété, --fl-sink et définissez-la égale à la largeur de votre bordure :

Est-ce que ça fait autre chose ?

C'est le cas !

--fl-left alternatives

Au lieu de --fl-left, vous pouvez utiliser --fl-center.
Si vous définissez --fl-center sur 0px, le titre sera centré horizontalement le long du bord supérieur.
Si vous le définissez sur -10px, il sera décalé de 10px à gauche du centre.
Réglez-le sur 15 px et il se décalera de 15 px à droite du centre.

Au lieu de --fl-left ou --fl-center, vous pouvez également utiliser --fl-right avec le comportement attendu.

Tous les trois sont et peut être positif, 0px ou négatif.

Titre comme : alternatives au premier enfant

Il peut être important que vous placiez d'autres éléments, tels que les sauts de page réservés aux lecteurs d'écran, avant le titre dans le conteneur Fieldset-Legend.

Placez une classe Fieldset-legend-title sur l'un des descendants directs de votre élément Fieldset-Legend et la bibliothèque élèvera cet élément à la même position souhaitée en haut, laissant :first-child seul.

fieldset-legend utilise le pseudo ::before

Vous pouvez lui faire utiliser le pseudo ::after à la place, changez simplement le nom de la classe de Fieldset-legend en Fieldset-legend-after

fieldset-legend pas de pseudo ?

Il s'agit d'un usage avancé mais...

Vous pouvez insérer : 0px ; un élément à l'intérieur du wrapper, personnalisez-le comme vous le souhaitez et utilisez Fieldset-legend-custom au lieu de Fieldset-legend ou Fieldset-legend-after.

Cela supprime tous les découpages de la bibliothèque et vous donne un masque personnalisé à utiliser n'importe où à l'intérieur de l'élément fieldset-legend-custom.

Par exemple, si vous souhaitez l'utiliser avec votre bibliothèque de mise en forme de science-fiction préférée, augmentéd-ui :

Comportement de repli

La prise en charge des fonctionnalités limitantes requises pour utiliser cet utilitaire est la portée de la chronologie.

Des requêtes de style conteneur sont également requises.

Voici à quoi ressemble la première démo de cet article dans les navigateurs autres que Chrome :

picture of the fallback behavior as described below

Il applique le même style mécanique pour minimiser les différences, telles qu'une position non statique et une isolation : isoler ; mais plus particulièrement, il remet le titre en ligne et fait deux choses !importantes :

  1. La couleur du titre devient currentColor - le contenu derrière le titre passe du corps à l'intérieur de votre conteneur Fieldset-Legend, qui peut avoir un arrière-plan très différent. L'utilisation de currentColor garantit que le contenu est lisible, car le reste du contenu de votre ensemble de champs non-a-fields est probablement déjà défini de manière appropriée.
  2. Dans le même ordre d'idées, je ne peux pas savoir si votre élément de titre avait déjà son propre arrière-plan (bien que si c'était le cas, vous n'avez pas besoin de cet utilitaire pour le positionner au-dessus de la bordure), donc l'arrière-plan est forcé d'être transparent, assurer currentColor sur l'arrière-plan de la légende du jeu de champs, qui dans la plupart des cas sera déjà lisible.

Pour déterminer un comportement de secours spécifique, vous pouvez définir
--fl-fallback-title-color et --fl-fallback-title-background qui seront utilisés à la place de currentColor ou transparent dans le cas où il serait rendu quelque part sans support.

Et voici à quoi ressemble la démo personnalisée ci-dessus dans les navigateurs qui ne prennent pas en charge Fieldset-legend :

picture of the fallback behaviors as described above

Prise en charge supplémentaire

Si vous savez utiliser mon ancienne technique Space Toggle, la bibliothèque propose également :

--fl-supported, qui sera un espace lorsqu'il est pris en charge et une initiale lorsqu'il n'est pas pris en charge

et

--fl-not-supported, ce qui est le contraire.


Ouvrir contact ?

Veuillez nous contacter si vous avez besoin d'aide pour tout cela, si vous avez des demandes de fonctionnalités ou si vous souhaitez partager ce que vous avez créé !

% CSS : comportement knock-out de la bordure de
pour nimporte quel élément !
% CSS : comportement knock-out de la bordure de
pour nimporte quel élément !
DEV Blog % CSS : comportement knock-out de la bordure de
pour nimporte quel élément !
% CSS : comportement knock-out de la bordure de
pour nimporte quel élément !
% CSS : comportement knock-out de la bordure de <fieldset> <legend> pour nimporte quel élément ! % CSS : comportement knock-out de la bordure de <fieldset> <legend> pour nimporte quel élément ! DEV Blog % CSS : comportement knock-out de la bordure de <fieldset> <legend> pour nimporte quel élément ! % CSS : comportement knock-out de la bordure de <fieldset> <legend> pour nimporte quel élément !

?@JaneOri.% CSS : comportement knock-out de la bordure de

pour nimporte quel élément !

?@Jane0ri

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 !

Article chaud

<🎜>: Bubble Gum Simulator Infinity - Comment obtenir et utiliser les clés royales
4 Il y a quelques semaines By 尊渡假赌尊渡假赌尊渡假赌
<🎜>: Grow A Garden - Guide de mutation complet
3 Il y a quelques semaines By DDD
Nordhold: Système de fusion, expliqué
4 Il y a quelques semaines By 尊渡假赌尊渡假赌尊渡假赌
Mandragora: Whispers of the Witch Tree - Comment déverrouiller le grappin
3 Il y a quelques semaines By 尊渡假赌尊渡假赌尊渡假赌

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
1671
14
Tutoriel PHP
1276
29
Tutoriel C#
1256
24
Une comparaison des fournisseurs de formulaires statiques Une comparaison des fournisseurs de formulaires statiques Apr 16, 2025 am 11:20 AM

Essayons de savoir un terme ici: "fournisseur de formulaire statique". Vous apportez votre HTML

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

Actualités hebdomadaires de la plate-forme: attribut HTML Loading, les principales spécifications Aria et le passage de iframe à Shadow Dom Actualités hebdomadaires de la plate-forme: attribut HTML Loading, les principales spécifications Aria et le passage de iframe à Shadow Dom Apr 17, 2025 am 10:55 AM

Dans cette semaine, le Roundup des nouvelles de la plate-forme, Chrome présente un nouvel attribut pour le chargement, les spécifications d'accessibilité pour les développeurs Web et la BBC Moves

Certains pratiques avec l'élément de dialogue HTML Certains pratiques avec l'élément de dialogue HTML Apr 16, 2025 am 11:33 AM

C'est moi qui regarde l'élément HTML pour la première fois. J'en ai été conscient depuis un certain temps, mais il ne l'a pas encore pris pour un tour. Il a un peu cool et

Forme de papier Forme de papier Apr 16, 2025 am 11:24 AM

L'achat ou la construction est un débat classique de la technologie. Construire des choses vous-même peut être moins cher car il n'y a pas d'article de ligne sur votre facture de carte de crédit, mais

Où devrait «abonner au podcast» vers le lien? Où devrait «abonner au podcast» vers le lien? Apr 16, 2025 pm 12:04 PM

Pendant un certain temps, iTunes était le grand chien du podcasting, donc si vous avez lié "Abonnez-vous au podcast" pour aimer:

Actualités de plate-forme hebdomadaire: bookmarklet d'espacement de texte, attente de haut niveau, nouvel indicateur de chargement d'ampli Actualités de plate-forme hebdomadaire: bookmarklet d'espacement de texte, attente de haut niveau, nouvel indicateur de chargement d'ampli Apr 17, 2025 am 11:26 AM

Au cours de cette semaine, un Bookmarklet pratique pour inspecter la typographie, en utilisant Await pour bricoler comment les modules JavaScript s'importent, ainsi que Facebook & # 039; S

Options pour héberger vos propres analyses non-javascript Options pour héberger vos propres analyses non-javascript Apr 15, 2025 am 11:09 AM

Il existe de nombreuses plates-formes d'analyse pour vous aider à suivre les données des visiteurs et d'utilisation sur vos sites. Peut-être plus particulièrement Google Analytics, qui est largement utilisé

See all articles