Pourquoi : le style CSS visité reste gras dans IE et Chrome
Dans un document HTML donné, les utilisateurs rencontrent souvent un lien qui conserve son caractère gras formatage même après avoir été visité. Ce problème survient dans les navigateurs comme Internet Explorer et Chrome. Examinons la racine de ce problème.
Le code HTML et CSS examiné est :
<html> <head> <style> A {font-weight: bold; color:black;} A:visited {font-weight: normal; color: black; } .Empty {font-weight: bold; color: black; } </style> </head> <body> <a href="http://mysite">click me</a> </body> </html>
En général, lors de la visite d'un lien, la pseudoclasse :visited devrait modifier son apparence, mais dans ce cas, font-weight reste gras.
Fonction de sécurité Restriction
Le coupable derrière ce comportement est une mesure de sécurité mise en œuvre dans les navigateurs modernes comme Firefox 4, Internet Explorer 9 et Chrome. Cette restriction empêche les exploits CSS qui pourraient résulter de la modification du poids de la police des liens visités.
Comportement de GetComputedStyle()
Dans ces navigateurs, getComputedStyle() renvoie généralement des valeurs pour visité les liens comme s’ils n’avaient pas été visités. Cependant, des acteurs malveillants pourraient potentiellement exploiter cela en modifiant la largeur de l'élément à l'aide de font-weight. Par conséquent, autoriser les modifications de l'épaisseur de la police pour les liens :visités pourrait compromettre la mesure de sécurité.
Garanties du navigateur
Pour contrecarrer les exploits CSS, les navigateurs emploient des protections spécifiques :
Conclusion
Cette restriction est une fonctionnalité de sécurité visant à protéger contre les exploits CSS. Malheureusement, il n'existe aucune solution de contournement connue pour modifier :visited font-weight dans Internet Explorer et Chrome.
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!