recherche
Maisoninterface Webtutoriel CSSQuand éviter la propriété scolare-décoration texte

Quand éviter la propriété raccourci du texte-décoration

Mon récent article sur les problèmes de soulignement CSS de Chrome a mis en évidence text-decoration-thickness et l' text-underline-offset , des propriétés CSS puissantes et largement soutenues offrant un contrôle plus fin.

Illustrons text-decoration-thickness . Le soulignement par défaut d'Ubuntu est assez épais. Nous pouvons l'affiner:

 : anyy-link {
  Texte-décoration-épaisseur: 0,08em;
}

Remarque: j'utilise :any-link au lieu de<a></a> pour cibler uniquement les hyperliens réels (ceux avec des attributs href ). Les styles d'agent utilisateur des navigateurs sont également favorables :any-link .

Soulignez-vous sur les pièges: un piège subtil

De nombreux sites (comme Google Search et Wikipedia) utilisent des soulignements de survol - les sous-lines apparaissent uniquement sur Mouseover. Bien que généralement déconseillé pour les liens dans le texte, cette approche convient aux liens espacés (navigation, pied de page). Voici un exemple d'en-tête:

 En-tête: n'importe quel lien {
  Décoration du texte: aucune;
}

En-tête: anyy -kin: Hover {
  Décoration du texte: soulignement;
}

Cependant, la volonté de survol revient à l'épaisseur par défaut, en ignorant notre paramètre précédent text-decoration-thickness . Pourquoi?

Le problème provient de text-decoration étant une propriété raccourci, et text-decoration-thickness de son homologue à la main. La définition text-decoration à none ou underline réinitialise les autres composants de décoration de texte (épaisseur, style, couleur). Le module de décoration de texte CSS le spécifie: les valeurs omises reviennent à leurs états initiaux.

Le navigateur Devtools Confirmez ceci: Inspectez un hyperlien, développez la propriété text-decoration pour voir les valeurs des composants.

Pour conserver l'épaisseur personnalisée sur le plan de survol, nous avons besoin d'ajustements. Plusieurs solutions existent:

  • Raflarez text-decoration-thickness dans l'état :hover .
  • Incorporez l'épaisseur directement dans le raccourci du text-decoration .
  • Utilisez text-decoration-line au lieu de text-decoration .

Stratégies optimales text-decoration

Répéter simplement text-decoration-thickness dans le :hover State fonctionne, mais il est redondant:

 / * Option A * /
En-tête: n'importe quel lien {
  Décoration du texte: aucune;
}

En-tête: anyy -kin: Hover {
  Décoration du texte: soulignement;
  Texte-décoration-épaisseur: 0,08em;
}

Idéalement, tirer parti des capacités de sténographie du text-decoration :

 / * Option b * /
En-tête: n'importe quel lien {
  Décoration du texte: aucune;
}

En-tête: anyy -kin: Hover {
  Décoration du texte: souligner 0,08EM;
}

Remarque: Cette approche sténographique est relativement nouvelle; Les versions CSS plus anciennes manquaient de cette fonctionnalité. Le moteur WebKit de Safari utilise toujours le case préfixe -webkit-text-decoration et manque de support d'épaisseur (voir Webkit Bug 230083). Cela rend l'option B safari-incompatible.

La meilleure approche utilise text-decoration-line , introduite aux côtés de la sténographie:

 / * Option C * /
En-tête: n'importe quel lien {
  Texte-décoration-ligne: aucun;
}

En-tête: anyy -kin: Hover {
  Text-décoration-ligne: soulignement;
}

Cela modifie uniquement le composant line , préservant l'épaisseur précédemment définie. Il s'agit de la solution la plus robuste et compatible avec les navigateurs.

Considérations de propriétés scolarisées

N'oubliez pas: les propriétés scolarisées (comme text-decoration , background ) réinitialisent les valeurs omises à leurs valeurs par défaut. Cela explique pourquoi les styles comme background-repeat: no-repeat sont remplacés par une déclaration ultérieure background: url(flower.jpg) . Voir "Réinitialisation accidentelle du CSS" pour plus de détails.

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
Qu'est-ce que CSS Grid?Qu'est-ce que CSS Grid?Apr 30, 2025 pm 03:21 PM

CSS Grid est un outil puissant pour créer des dispositions Web complexes et réactives. Il simplifie la conception, améliore l'accessibilité et offre plus de contrôle que les méthodes plus anciennes.

Qu'est-ce que CSS Flexbox?Qu'est-ce que CSS Flexbox?Apr 30, 2025 pm 03:20 PM

L'article traite de CSS Flexbox, une méthode de mise en page pour l'alignement et la distribution efficaces de l'espace dans les conceptions réactives. Il explique l'utilisation de Flexbox, la compare à la grille CSS et détaille la prise en charge du navigateur.

Comment pouvons-nous rendre notre site Web réactif à l'aide de CSS?Comment pouvons-nous rendre notre site Web réactif à l'aide de CSS?Apr 30, 2025 pm 03:19 PM

L'article traite des techniques de création de sites Web réactifs à l'aide de CSS, y compris des balises de méta de la fenêtre, des grilles flexibles, des médias fluides, des requêtes multimédias et des unités relatives. Il couvre également l'utilisation de la grille CSS et de Flexbox ensemble et recommande le cadre CSS

Que fait la propriété CSS Box-Sizizing?Que fait la propriété CSS Box-Sizizing?Apr 30, 2025 pm 03:18 PM

L'article traite de la propriété CSS-Box-Sizing, qui contrôle comment les dimensions des éléments sont calculées. Il explique des valeurs telles que la boîte de contenu, la boîte de bordure et la boîte de padding, et leur impact sur la conception de la disposition et l'alignement de la forme.

Comment pouvons-nous animer à l'aide de CSS?Comment pouvons-nous animer à l'aide de CSS?Apr 30, 2025 pm 03:17 PM

L'article discute de la création d'animations à l'aide de CSS, de propriétés clés et de combinaison avec JavaScript. Le principal problème est la compatibilité du navigateur.

Pouvons-nous ajouter des transformations 3D à notre projet en utilisant CSS?Pouvons-nous ajouter des transformations 3D à notre projet en utilisant CSS?Apr 30, 2025 pm 03:16 PM

L'article discute de l'utilisation de CSS pour les transformations 3D, les propriétés clés, la compatibilité du navigateur et les considérations de performances pour les projets Web. (Compte de caractère: 159)

Comment pouvons-nous ajouter des gradients dans CSS?Comment pouvons-nous ajouter des gradients dans CSS?Apr 30, 2025 pm 03:15 PM

L'article discute de l'utilisation des gradients CSS (linéaire, radial, répétant) pour améliorer les visuels du site Web, l'ajout de profondeur, de concentration et d'esthétique moderne.

Que sont les pseudo-éléments dans CSS?Que sont les pseudo-éléments dans CSS?Apr 30, 2025 pm 03:14 PM

L'article traite des pseudo-éléments dans CSS, de leur utilisation dans l'amélioration du style HTML et des différences par rapport aux pseudo-classes. Fournit des exemples pratiques.

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 version anglaise

SublimeText3 version anglaise

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

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)

SublimeText3 Linux nouvelle version

SublimeText3 Linux nouvelle version

Dernière version de SublimeText3 Linux

ZendStudio 13.5.1 Mac

ZendStudio 13.5.1 Mac

Puissant environnement de développement intégré PHP