Maison >interface Web >tutoriel CSS >Recréer l'effet de texte tronqué de MDN

Recréer l'effet de texte tronqué de MDN

尊渡假赌尊渡假赌尊渡假赌
尊渡假赌尊渡假赌尊渡假赌original
2025-03-11 09:34:15725parcourir

La nouvelle conception de MDN est incroyable! Certaines de ces astuces CSS intelligentes méritent d'être savourées, comme la façon dont les composants de la carte gèrent du texte tronqué. </p> <p> n'est-ce pas cool? Passons une analyse plus profonde. Il y a deux raisons principales pour lesquelles cette approche me fait appel: </p> <ul> <li> Il tronque intelligemment le contenu, qui est appelé la perte de données CSS ailleurs. Bien que la perte de données soit généralement mauvaise, elle est utilisée juste ici, car le résumé est destiné à être un aperçu du contenu complet. </li> <li> Ceci est différent de l'utilisation de <code> du texto-overflow: ellipsis </code> pour tronquer du texte, qu'Eric Eggert a récemment exprimé ses préoccupations. La principale objection est l'incapacité de récupérer le texte tronqué - la technologie d'assistance le lira, mais les utilisateurs d'une vision normale ne peuvent pas le récupérer. La méthode MDN fournit plus de contrôle, car la troncature n'est que visuelle. </li> </ul> <p> Comment le MDN le fait-il? Il n'y a rien de spécial dans HTML, c'est juste un conteneur contenant des paragraphes. </p> <pre class=

lorem ipsum Dolor sit amet cohétur apising elit.

Idem, rien d'extraordinaire. Notre objectif est de tronquer le contenu après la troisième ligne. Nous pouvons définir le max-height du paragraphe et masquer le contenu de débordement:

 .card p {max-height: calc (4rem * var (- base)); Notez que j'ai un préréglage de variable  - base  qui peut être utilisé comme multiplicateur commun. Je l'utilise pour calculer la taille de la police, la hauteur de la ligne, le remplissage de la carte et maintenant le  max-height  du paragraphe. Je trouve plus facile d'utiliser des valeurs constantes, en particulier lorsque la taille requise est basée sur l'échelle comme celle-ci. J'ai remarqué que MDN utilise également une variable  similaire - Base-Line-Height , probablement dans le même but. 

Comment faire disparaître la troisième ligne de texte? Il s'agit du classique linéaire-gradient () sur la pseudo-élément du paragraphe :: après , qui est fixé dans le coin inférieur droit de la carte. Par conséquent, nous pouvons le définir comme ceci:

. Variable d'arrière-plan , qui est définie sur la même valeur de couleur d'arrière-plan que la couleur d'arrière-plan utilisée par  .card  lui-même. De cette façon, le texte semble s'estomper en arrière-plan. J'ai trouvé que le deuxième point d'arrêt de couleur du gradient doit être ajusté car le texte n'est pas complètement caché lorsque le gradient est complètement mélangé à 100%. J'ai trouvé que 80% était un bon point pour moi. 

oui, :: après nécessite la hauteur et la largeur. La hauteur est l'endroit où la variable - Base revient en jeu, car nous voulons qu'elle augmente la hauteur de ligne du paragraphe pour écraser le texte avec la hauteur de :: après .

 .Card p :: After {/ * supra * / height: calc (1Rem * var (- base) 1px); Encore une fois, je n'utilise pas  top  (ou  inset-block-start ) pour compenser le gradient dans cette direction. ? ‍️ 

maintenant p :: après est absolument positionné, et nous devons déclarer explicitement le positionnement relatif sur le paragraphe pour garder :: après dans son flux. Sinon, :: After sera complètement supprimé du flux de documents et finira par apparaître en dehors de la carte. Ceci est le CSS complet du paragraphe . Non! Le gradient ne semble pas être au bon endroit. </p> <p> J'avoue que j'ai fait une erreur dans ce domaine et j'ai commencé Devtools sur MDN pour voir ce que j'ai manqué. Oh, oui, <code> :: After doit être affiché sous forme d'élément de bloc. Ceci est très clair lors de l'ajout d'une bordure rouge. ? ‍️

. 

Oui, la voix off semble respecter le texte intégral. Je n'ai cependant pas testé d'autres lecteurs d'écran.

J'ai également remarqué que l'implémentation de MDN supprime Pointer-Events de p :: After . Cela peut être une bonne stratégie de défense pour empêcher un comportement étrange lors de la sélection du texte. Je l'ai ajouté, et au moins dans Safari, Firefox et Chrome, la sélection de texte se sent un peu plus fluide.

">

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