Table des matières
et simplement la traiter comme une boîte avec peu de contenu. Comme ceci :
injecté par
插入非文本内容
可怕的浏览器兼容性
伪元素不是决定性的
一些提醒
Maison interface Web tutoriel HTML Raisons d'utiliser la balise i comme petite icône

Raisons d'utiliser la balise i comme petite icône

May 14, 2018 pm 02:01 PM
原因 标的

  1. Utiliser l'élément pour créer une icône est sémantiquement incorrect (bien que cela ressemble à l'abréviation de icône) ; Il est plus court que , mais la différence après gzip est très faible, mais vous pouvez appuyer sur trois touches de moins lors de la saisie

  2. La plupart des icônes utilisent le

    vide,
  3. sont implémentés avec le pseudo-élément ::before

    Comme il n'y a pas de contenu, le lecteur d'écran ne le lira pas (donc même s'il y a un traitement spécial, il sera ignoré). , et cela ne devrait avoir aucun impact sur la compréhension de la machine. Dans l'ensemble, je ne vois aucune lacune en termes de praticité, donc l'utilisation ou non de

Syntaxe de base


Les pseudo-éléments :before et :after sont très simples à coder (comme la plupart des propriétés CSS, vous n'avez pas besoin de beaucoup de préfixes). Voici un exemple simple.

Deux choses sont mentionnées dans cet exemple. Premièrement, nous utilisons #example:before et #example:after pour cibler le même élément à proprement parler, ce sont des pseudo-éléments dans le code.

Deuxièmement, comme mentionné dans le module de contenu, le pseudo-élément
#example:before {  content: "#";}#example:after {  content: ".";}	
Copier après la connexion
est inutile si l'attribut "content" n'est pas défini

.

Dans cet exemple, l'élément avec l'attribut id aura un "symbole dièse" placé avant le contenu, et un "point" après le contenu. Notes de syntaxe

Vous pouvez définir la

valeur de l'attribut de contenu sur vide

et simplement la traiter comme une boîte avec peu de contenu. Comme ceci :

Cependant, vous ne pouvez pas supprimer complètement l'attribut content

Si vous le faites, le
#example:before {  content: "";
  display: block;  width: 100px;  height: 100px;}	
Copier après la connexion
pseudo-élément ne fonctionnera pas

. Au minimum, la propriété content nécessite une référence nulle comme valeur (c'est-à-dire :content:""). Vous remarquerez peut-être que vous pouvez également écrire des pseudo-éléments en utilisant deux deux-points (::before et ::after), dont j'ai déjà parlé. L'explication courte est qu'il n'y a pas de différence entre les deux syntaxes. La seule différence est que le pseudo-élément (double deux-points) et la pseudo-classe en CSS3 sont (un seul deux-points) Enfin, en termes de syntaxe. Techniquement, vous pouvez appliquer des pseudo-éléments de manière générale, plutôt que sur des éléments spécifiques, comme ceci :

Bien que ce qui précède fonctionne, c'est plutôt inutile. Le code insère un symbole de hachage avant le contenu de chaque élément du DOM. Même si vous supprimez la balise et tout son contenu, vous verrez toujours deux symboles de hachage sur la page : un dans la balise et un autre dans la balise créer.

Caractéristiques du contenu inséré
:before {  content: "#";}	
Copier après la connexion

Comme mentionné précédemment,

Le contenu inséré n'est pas visible dans le code source de la page et n'est visible qu'en css.

De plus, les éléments insérés sont par défaut des éléments en ligne (ou, en HTML5, dans la catégorie Sémantique textuelle). Par conséquent, afin de donner à un élément inséré la hauteur, le remplissage, les marges, etc., vous devez généralement le définir explicitement comme un élément de niveau bloc.

Ceci va être une brève explication sur la façon de concevoir des pseudo-éléments, regardez cette photo de mon Éditeur sous le texte

Dans cet exemple, mon style surligné sera appliqué à l'élément inséré avant et après le contenu de l'élément cible.

pseudo elementNotez également que les règles typiques d'

héritage CSS

s'appliquent aux éléments insérés. Par exemple, si les familles de polices Helvetica, Arial et Sans Serif sont appliquées à l'élément body, le pseudo-élément héritera de ces familles de polices comme n'importe quel autre élément.

De même, les pseudo-éléments n'hériteront pas de styles qui ne sont pas naturellement hérités de l'élément parent (comme le remplissage et les marges). Qu'est-ce qui vient avant ou après ?

Votre intuition est que les pseudo-éléments :before et :after pourraient être injectés avant ou après l'élément cible

 ? Mais comme mentionné ci-dessus, ce n’est pas le cas. Le contenu

injecté par

sera l'élément enfant de l'élément

cible associé, et le contenu

pointé par content sera placé dans l'enfant L'élément "avant" ou "après" . Pour démontrer cela, jetez un œil au code ci-dessous. Tout d'abord, en HTML : Ce qui suit est le CSS pour insérer des pseudo-éléments :

Dans ce html, le texte que vous regardez a une boîte de classe, et là y a-t-il ce texte "Autre contenu" (comme vous le verriez si vous voyiez le code source de la page d'accueil). En CSS, ce contenu est défini sur une largeur, ainsi que du remplissage et des bordures visibles
<p class="box">Other content.</p>	
Copier après la connexion

然后我们有了伪元素。在这个例子中,它是一个散列符号插入到该段内容之前。随后css给了它一个边框以及一些padding和margins。

这里是浏览器中查看的结果:

pseudo element

外面的盒子是这个段落。围绕有散列符号的边框表示伪元素的边界。所以,不是插入“before”到段落,而是伪元素被置于到此段落的“Other content”的前面

插入非文本内容

我简要的提醒,你可以把属性的值置为空字符串或是插入文本内容。你基本上有属性的值要包含什么的两个额外的选择

首先,你可以包含一个指向一个图像的URL,就像在css里包含一个背景图像一样做你能做的

p:before {  content: url(image.jpg);}	
Copier après la connexion

注意不能使用引号。如果你将URL用引号括起来,那么它会变成一个字符串和插入文本“url(image.jpg)”作为其内容,插入的而不是图像本身。

当然,你可以包含一个Data URI代替图像引用,正如你可以用css背景一样。

你还可以选择attr(X)中的函数的形式。此功能,根据规范 ,“把X属性的值以字符串的形式返回”

下面是一个例子:

a:after {  content: attr(href);}	
Copier après la connexion

attr()函数的功能是什么?它得到特定属性的值并把它作为插入的文本成为一个伪元素。

上面的代码会导致页面上的每一个元素的href值立即被放置在每个各自的元素的后面。在文档被打印时,它可以用作一个包含所有URl的打印样式表。

你也可以用这个函数去获取元素的title属性,或者甚至是microdata的值。当然,并不是所有的例子都符合自己的实际,但根据不同的情况,一个特定的属性值作为一个伪元素可以是实际的。

然而,获取title或者图像的alt的值并作为实际的伪元素显示在页面上是不可能的。记住伪元素必须是被应用元素的子元素。图像,这是void(或者是空元素),没有子元素,所以它在这个列子中不可用,同样也适用于其他空元素,例如:

可怕的浏览器兼容性

任何前端技术的发展势头,第一个问题就是浏览器的支持。在这种情况之下,它不是个很大的问题。

浏览器支持:before 和 :after 伪元素栈,像这样:

  • Chrome 2+,

  • Firefox 3.5+ (3.0 had partial support),

  • Safari 1.3+,

  • Opera 9.2+,

  • IE8+ (with some minor bugs),

  • 几乎所有的移动浏览器。

唯一真正的问题是没有获得支持的(不用奇怪)IE6和IE7。所以,如果你的爱好者是在良好合适的web开发(或者其他具有较低IE版本的市场),你可以继续自由地使用伪元素。

伪元素不是决定性的

幸运的是,缺少伪元素不会造成大问题。大多数情况下,伪元素一般修饰(或者帮助)内容,不会给不支持的浏览器造成问题。所以,如果你的支持者具有较高的IE版本,你仍然可以在某种程度上使用它们。

一些提醒

正如前面提到的,伪元素不会出现在DOM中。这些元素不是真正的元素。因此,它们不是可用的。所以,不要使用伪元素生成内容,是您的网页的可用性和可访问性的关键。

另外一件需要记住的是,开发工具,例如火狐,不要用伪元素显示内容。所以,如果使用了,伪元素会造成难以维护和调试缓慢。

(更新:在评论中提到的,你可以使用谷歌的开发工具来查看一个伪元素相关联的风格,但不会出现在DOM元素里。同时,火狐在1.8版加入伪元素支持它。)

你所需要用有的理念是用这个技术以创造出实用的东西。与此同时,将来进一步研究CSS伪元素,一定要看看我们已经链接的一些文章。

 

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

AI Hentai Generator

AI Hentai Generator

Générez AI Hentai gratuitement.

Article chaud

R.E.P.O. Crystals d'énergie expliqués et ce qu'ils font (cristal jaune)
4 Il y a quelques semaines By 尊渡假赌尊渡假赌尊渡假赌
R.E.P.O. Meilleurs paramètres graphiques
4 Il y a quelques semaines By 尊渡假赌尊渡假赌尊渡假赌
R.E.P.O. Comment réparer l'audio si vous n'entendez personne
4 Il y a quelques semaines By 尊渡假赌尊渡假赌尊渡假赌
R.E.P.O. Commandes de chat et comment les utiliser
4 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)

Quelle est la raison pour laquelle le screencasting échoue ? 'Une lecture incontournable pour les débutants : Comment résoudre le problème de l'échec d'une connexion de screencasting sans fil' Quelle est la raison pour laquelle le screencasting échoue ? 'Une lecture incontournable pour les débutants : Comment résoudre le problème de l'échec d'une connexion de screencasting sans fil' Feb 07, 2024 pm 05:03 PM

Pourquoi le screencasting sans fil ne parvient-il pas à se connecter ? Certains amis ont signalé que la connexion échouait lors de l'utilisation de la mise en miroir d'écran sans fil. Que se passe-t-il ? Que dois-je faire si la connexion de mise en miroir d'écran sans fil échoue ? Veuillez confirmer si votre ordinateur, votre téléviseur et votre téléphone portable sont connectés au même réseau WiFi. Le logiciel de mise en miroir d'écran nécessite que les appareils soient sur le même réseau pour fonctionner correctement, et Quick Screen Mirroring ne fait pas exception. Par conséquent, veuillez vérifier rapidement vos paramètres réseau. Il est important de déterminer si la fonction de mise en miroir d'écran est prise en charge. Les téléviseurs intelligents et les téléphones mobiles prennent généralement en charge les fonctionnalités DLNA ou AirPlay. Si la fonction screencast n’est pas prise en charge, la capture d’écran ne sera pas possible. Vérifiez si l'appareil est correctement connecté : Il peut y avoir plusieurs appareils sous le même WiFi. Assurez-vous que vous vous connectez à l'appareil avec lequel vous souhaitez partager l'écran. 4. Assurez-vous que le réseau

Qu'est-ce qui empêche WPS Office de démarrer un travail d'impression ? Qu'est-ce qui empêche WPS Office de démarrer un travail d'impression ? Mar 20, 2024 am 09:52 AM

Lors de la connexion d'une imprimante à un réseau local et du démarrage d'un travail d'impression, certains problèmes mineurs peuvent survenir. Par exemple, le problème "wpsoffice ne peut pas démarrer le travail d'impression..." se produit occasionnellement, entraînant l'impossibilité d'imprimer des fichiers, etc. ., retardant notre travail et nos études et provoquant un impact négatif, laissez-moi vous expliquer comment résoudre le problème selon lequel wpsoffice ne peut pas démarrer le travail d'impression ? Bien sûr, vous pouvez mettre à niveau le logiciel ou le pilote pour résoudre le problème, mais cela vous prendra beaucoup de temps. Ci-dessous, je vais vous donner une solution qui peut être résolue en quelques minutes. Tout d'abord, j'ai remarqué que wpsoffice ne pouvait pas démarrer le travail d'impression, ce qui entraînait l'impossibilité d'imprimer. Pour résoudre ce problème, nous devons enquêter un par un. Assurez-vous également que l’imprimante est sous tension et connectée. Généralement, une connexion anormale entraînera

Mar 22, 2024 pm 12:45 PM

Un guide complet des erreurs PHP500 : causes, diagnostics et correctifs Au cours du développement PHP, nous rencontrons souvent des erreurs avec le code d'état HTTP 500. Cette erreur est généralement appelée « 500InternalServerError », ce qui signifie que des erreurs inconnues se sont produites lors du traitement de la requête côté serveur. Dans cet article, nous explorerons les causes courantes des erreurs PHP500, comment les diagnostiquer et comment les corriger, et fournirons des exemples de code spécifiques pour référence. Causes courantes des erreurs 1.500 1.

Pourquoi le chargement des téléphones mobiles Apple est-il si lent ? Pourquoi le chargement des téléphones mobiles Apple est-il si lent ? Mar 08, 2024 pm 06:28 PM

Certains utilisateurs peuvent rencontrer des vitesses de chargement lentes lorsqu'ils utilisent des téléphones Apple. Ce problème peut avoir de nombreuses raisons. Il peut être dû à une faible puissance du chargeur, à une panne de l'appareil, à des problèmes avec l'interface USB du téléphone mobile ou même au vieillissement de la batterie et à d'autres facteurs. Pourquoi le téléphone mobile Apple se charge-t-il très lentement ? Réponse : problème d'équipement de charge, problème matériel de téléphone mobile, problème de système de téléphonie mobile. 1. Lorsque les utilisateurs utilisent un équipement de chargement avec une puissance relativement faible, la vitesse de chargement du téléphone mobile sera très lente. 2. L'utilisation de chargeurs ou de câbles de charge tiers de qualité inférieure entraînera également une charge lente. 3. Il est recommandé aux utilisateurs d'utiliser le chargeur d'origine officiel ou de le remplacer par un chargeur haute puissance certifié standard. 4. Il y a un problème avec le matériel du téléphone mobile de l'utilisateur. Par exemple, l'interface USB du téléphone mobile ne peut pas être contactée.

Révéler les causes profondes de l'écran bleu Win11 Révéler les causes profondes de l'écran bleu Win11 Jan 04, 2024 pm 05:32 PM

Je pense que de nombreux amis ont rencontré le problème de l'écran bleu du système, mais je ne sais pas quelle est la cause de l'écran bleu win11. En fait, il existe de nombreuses raisons pour l'écran bleu du système, et nous pouvons les enquêter et les résoudre dans l'ordre. Raisons de l'écran bleu Win11 : 1. Mémoire insuffisante 1. Cela peut se produire lors de l'exécution de trop de logiciels ou lorsque le jeu consomme trop de mémoire. 2. Surtout maintenant, il y a un bug de débordement de mémoire dans Win11, il est donc très probable qu'il soit rencontré. 3. À ce stade, vous pouvez essayer de configurer la mémoire virtuelle pour résoudre le problème, mais le meilleur moyen consiste à mettre à niveau le module de mémoire. 2. Overclocking et surchauffe du processeur 1. Les causes des problèmes de processeur sont en réalité similaires à celles de la mémoire. 2. Cela se produit généralement lors de l'utilisation de logiciels de post-traitement, de modélisation et autres, ou lors de la lecture de jeux à grande échelle. 3. Si la consommation du processeur est trop élevée, un écran bleu apparaîtra.

Pourquoi win11 s'arrête-t-il automatiquement ? Pourquoi win11 s'arrête-t-il automatiquement ? Jan 01, 2024 pm 11:39 PM

Récemment, un ami a rencontré le problème de l'arrêt automatique de Win11 après la mise à jour du système. Dans de nombreux cas, cela se produit lorsque vous jouez à des jeux, je ne sais pas quelle en est la cause. En fait, cela peut être dû à une configuration informatique insuffisante ou à une panne du système. Examinons les causes et les solutions. Pourquoi win11 s'arrête-t-il automatiquement ? 1. Configuration insuffisante 1. Le système Windows 11 a des besoins en CPU et en mémoire plus élevés que Windows 10. 2. Surtout lors de l'exécution de jeux à grande échelle et d'autres tâches, il est très facile de s'arrêter automatiquement. 3. Les utilisateurs peuvent essayer de restaurer l'état d'utilisation avant l'arrêt automatique en cliquant avec le bouton droit sur l'icône du menu Démarrer et en ouvrant la page « Gestionnaire des tâches ». 4. Vérifions le processeur, la mémoire et le disque sur cette page.

Raisons et analyse de l'échec de l'installation du pilote Win10 Raisons et analyse de l'échec de l'installation du pilote Win10 Jan 02, 2024 pm 04:57 PM

Certains amis ont rencontré le problème de l'échec de l'installation lors de l'installation des pilotes Windows 10, mais ils ne connaissaient pas la cause de l'échec ni comment le résoudre. Il existe plusieurs raisons différentes à ce problème. Veuillez me suivre pour les découvrir ci-dessous. Raisons pour lesquelles l'installation du pilote win10 échoue : 1. Version du système Actuellement, le système Windows 10 a déjà pour fonction d'installer automatiquement les pilotes. L'introduction de cette fonctionnalité élimine le besoin pour les utilisateurs de rechercher et d'installer manuellement les pilotes lors de l'installation du système. Le système détectera et installera automatiquement les pilotes appropriés, offrant ainsi une expérience plus pratique. Si l'installation de votre pilote échoue, une solution consiste à essayer de mettre à jour votre système. Cela peut résoudre certains problèmes liés au système, permettant au pilote de

Dépannage des causes et solutions pour le code d'état HTTP 550 Dépannage des causes et solutions pour le code d'état HTTP 550 Feb 20, 2024 am 09:49 AM

Explorez les causes et les solutions du code d'état HTTP 550 Introduction : Dans les communications réseau, les codes d'état HTTP jouent un rôle important et sont utilisés pour indiquer les résultats du serveur traitant la demande. Parmi eux, le code d'état HTTP 550 est un code d'état relativement rare qui est généralement lié au refus du serveur d'exécuter la requête. Cet article explorera les causes du code d'état HTTP 550 et proposera des solutions. 1. Concepts de base des codes d'état HTTP. Avant de comprendre le code d'état HTTP 550, comprenons d'abord brièvement les concepts de base des codes d'état HTTP.

See all articles