Maison >interface Web >tutoriel CSS >Pourquoi mon style CSS :visited ne fonctionne-t-il pas dans les navigateurs modernes ?

Pourquoi mon style CSS :visited ne fonctionne-t-il pas dans les navigateurs modernes ?

Patricia Arquette
Patricia Arquetteoriginal
2024-12-02 00:12:12335parcourir

Why Doesn't My :visited CSS Style Work in Modern Browsers?

Pourquoi le style CSS :visited ne fonctionne pas ?

Dans une récente tentative visant à empêcher un exploit CSS, une fonctionnalité de sécurité a été implémenté dans les navigateurs modernes tels que Firefox 4, Internet Explorer 9 et Chrome, ce qui restreint les fonctionnalités de la pseudoclasse :visited. Cela explique pourquoi l'extrait de code fourni dans la question ne fonctionne pas comme prévu.

Dans le code, une règle est définie pour modifier l'apparence des liens lorsqu'ils sont visités, en définissant l'épaisseur de la police sur normale et la couleur au noir. Cependant, si ce code est ouvert dans Internet Explorer ou Chrome, le lien reste en gras même après avoir été visité.

Le problème de sécurité se pose car la modification de l'épaisseur de la police des liens visités peut impacter la largeur de l'élément. Par conséquent, même si les navigateurs ont limité la possibilité de modifier l'épaisseur de la police des liens visités, ils ont également mis en place des protections supplémentaires pour éviter de contourner cette mesure de sécurité.

Ces protections incluent :

  • fenêtre .getComputedStyle() et les fonctions similaires renvoient des valeurs indiquant que le lien n'a pas été visité.
  • Éléments adjacents utilisant un sélecteur frère (par exemple, :visited span) sera stylé comme si le lien n'était pas visité.
  • Dans des scénarios spécifiques impliquant des éléments de lien imbriqués, l'élément correspondant peut être rendu comme si le lien n'était pas visité.

En raison de ces fonctionnalités de sécurité, il n'existe actuellement aucune solution viable à ce problème. La pseudoclasse :visited est effectivement restreinte dans la plupart des navigateurs modernes pour empêcher les exploits potentiels.

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