Attributs content-visibility
du CSS: Modifications des performances et défis de l'accessibilité
En août 2020, l'attribut content-visibility
de CSS a commencé à être utilisé dans les navigateurs de Chrome, et Una Kravets et Vladimir Levin ont écrit un article à ce sujet. Pour utiliser pleinement ses avantages de performance, il doit être utilisé en conjonction avec contain-intrinsic-size
, qui nécessite une estimation de la hauteur de gros morceaux de contenu dans la page. La partie la plus étrange est que vous devez faire une supposition approximative de la hauteur de ces gros morceaux.
J'ai déjà posé une question: devinez la hauteur? Que se passe-t-il si la supposition est mauvaise? Cela affectera-t-il les performances? S'il y a une grande différence entre un grand écran et un petit écran, cette valeur (ou devrait-elle) être modifiée dans une fenêtre différente?
Jake Archibald et Das Surma ont récemment réalisé une vidéo pour clarifier ces problèmes. À environ 7 minutes et 30 secondes de la vidéo, vous pouvez voir à quel point cela est confus. Jake a utilisé une grande page de spécification HTML comme démonstration et a ajouté un wrapper pour de gros morceaux de contenu HTML, et a appliqué le code suivant:
section { Contenu-visibilité: Auto; / * Dessin de retard * / Contient la taille de la taille de l'effort: 1px 5000px; / * devinez la taille du contenu, la largeur n'a pas d'importance * / }
De toute évidence, 5000px
n'est pas la hauteur de l'élément, mais la taille du contenu de cet élément. Ceci est important car il augmente la hauteur de l'élément parent à cette valeur, sauf si l'élément parent le remplace avec son propre attribut de hauteur. La magie de ceci est que le navigateur ne tirera que la première section (la hauteur de la fenêtre est susceptible d'être inférieure à 5000px) et le dessin de retard du reste. C'est un peu comme un chargement paresseux, mais cela fonctionne sur tout, pas seulement sur les médias. Il suppose que la section suivante a une hauteur de 5000px, mais une fois que son haut est visible, il est réellement dessiné et la hauteur correcte est déterminée. Donc, si votre page n'est que de grands blocs de contenu empilés, l'utilisation d'un très grand nombre devrait bien fonctionner. Si votre site Web est plus compliqué que cela, soyez heureux.
Ceci est une excellente vidéo que vous devriez consulter: lien vidéo
Ceci est un autre exemple de ce qui vous oblige à fournir aux informations du site Web à votre navigateur afin qu'il puisse améliorer les performances. Le navigateur lui-même peut trouver ces informations, mais cela ne peut être fait qu'après avoir effectué des opérations avec des coûts de performance. Vous devez donc le dire à l'avance, évitant ainsi certains types de travail supplémentaire. Pour les images réactives, si nous utilisons l'attribut srcset
pour fournir des images et dire au navigateur à l'avance leur taille, y compris un attribut sizes
contenant des informations sur le comportement CSS, il peut être calculé à l'avance et seules les meilleures images sont téléchargées. De même, pour will-change
dans CSS, nous pouvons dire au navigateur à l'avance que nous ferons le déménagement afin qu'il puisse être pré-optimisé, sinon il ne peut pas le faire. C'est compréhensible, mais un peu ennuyeux. C'est comme si nous avions besoin d'un fichier stuff-you-need-to-know.manifest
à lui être fourni avant que le navigateur ne fasse autre chose - mais ce serait une demande supplémentaire!
Les problèmes d'accessibilité sont également importants. Steve Faulkner a testé en appliquant content-visibility: auto
aux images et paragraphes:
Le contenu est visuellement caché, mais dans Jaws et NVDA, des images cachées sont annoncées, mais le contenu de l'élément n'est pas annoncé. Ceci est lié à la façon dont le contenu des éléments d'image et de paragraphe est représenté dans l'arborescence d'accessibilité du navigateur: l'image s'affiche dans l'arborescence d'accessibilité avec le texte ALT comme nom d'accessibilité. Le contenu des éléments de paragraphe n'est pas dans l'arbre d'accessibilité.
Il a noté que par les spécifications, le contenu caché de cette manière ne devrait pas être fourni pour filtrer les lecteurs. Je peux comprendre les deux cas, comme cacher tout comme display: none
, ce qui signifie que rien n'est dans l'arborescence d'accessibilité. Ou, gardez tout dans l'arbre d'accessibilité. Maintenant, il est dans un état intermédiaire, vous pourriez voir un tas d'images isolées dans l'arborescence d'accessibilité sans autre contexte à l'exception de leur texte alt. Ceci est un exemple intéressant de la nouvelle technologie introduite peut être plus rugueuse que vous ne voudriez voir.
En parlant de textes ALT, nous savons tous qu'ils ne devraient pas être vides lorsqu'ils représentent des choses importantes qui doivent être décrites aux personnes qui ne peuvent pas les voir. Dave dit qu'ils devraient être comme des paragraphes :
J'ai finalement établi la connexion la plus simple: le texte alt est comme un paragraphe. Images de texte. Je sais que c'est basique, mais cela m'aide à comprendre comment écrire un bon texte alt et l'ordre source de mon code.
Je ne veux pas être trop négatif ici! Les gains de performances pour mettre en place de longues pages de défilement avec des attributs content-visibility
sont énormes, ce qui est génial. Il est bon de pouvoir utiliser deux lignes de code pour dire au navigateur ce qui ne peut pas être dessiné.
- Je continue de dire "dessiner" mais je ne sais pas si c'est vraiment le bon terme ou si cela signifie plus spécifique. La spécification mentionne des choses comme "Permettre aux agents des utilisateurs d'omettre potentiellement beaucoup de travail et de travail avant qu'ils n'en aient besoin" (mettant l'accent sur le mien).
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!

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.

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.

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

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.

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.

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)

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.

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.


Outils d'IA chauds

Undresser.AI Undress
Application basée sur l'IA pour créer des photos de nu réalistes

AI Clothes Remover
Outil d'IA en ligne pour supprimer les vêtements des photos.

Undress AI Tool
Images de déshabillage gratuites

Clothoff.io
Dissolvant de vêtements AI

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

Outils chauds

Dreamweaver Mac
Outils de développement Web visuel

Version Mac de WebStorm
Outils de développement JavaScript utiles

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.

Version crackée d'EditPlus en chinois
Petite taille, coloration syntaxique, ne prend pas en charge la fonction d'invite de code

Adaptateur de serveur SAP NetWeaver pour Eclipse
Intégrez Eclipse au serveur d'applications SAP NetWeaver.
