Qu'est -webkit-focus-anneau de couleur?

Je veux reproduire l'effet outline pour les boîtes de saisie focalisées dans webkit aux navigateurs non-webkit. J'ai trouvé ici Le CSS par défaut utilisé dans webkit. Les lignes d'intérêt sont:

:focus {
    outline: auto 5px -webkit-focus-ring-color
}

J'ai essayé de faire une recherche dans l'ensemble du code pour la définition -webkit-focus-ring-color ici, mais ne pouvait pas le trouver n'importe où.

36
demandé sur Randomblue 2011-09-24 15:41:34

4 réponses

-webkit-focus-ring-color est défini dans la base de code WebKit comme focusRingColor dans chaque classe RenderTheme. Ce travail a été effectué en juin 2009 dans le cadre de ce changeset par Jeremy Moskovich .

Par exemple, le thème Mac par défaut (utilisé par Safari) définit la couleur dans RenderThemeMac.mm (d'une manière détournée) comme:

[NSColor keyboardFocusIndicatorColor]

(la documentation Très légère D'Apple de cette propriété est disponible en ligne).

Il existe une valeur de remplacement pour le Mac (appelée WebCore::oldAquaFocusRingColor) à utiliser pour test (comme je peux le dire, c'est pour que le code puisse effectuer une comparaison entre le rendu du navigateur et un graphique de référence; il est basculé en utilisant WebCore::usesTestModeFocusRingColor). Il est défini dans ColorMac.mm comme suit (qui correspond apparemment à Color(125, 173, 217)):

0xFF7DADD9

Chrome/Chrome définit la couleur dans RenderThemeChromiumSkia.cpp comme:

Color(229, 151, 0, 255)

La couleur par défaut (spécifié dans RenderTheme.h) est noir pur:

Color(0, 0, 0)
28
répondu Kit Grose 2012-08-13 07:23:19

Utilisez ce jsFiddle . J'ai rgb(229, 151, 0) dans Chrome 14 sur Windows 7.

9
répondu Tyler Crompton 2011-09-24 15:33:23

-webkit-focus-ring-color ne fonctionne pas dans Firefox. Vous pouvez cependant utiliser la couleur système Highlight en remplacement.

:focus {
    outline: auto 2px Highlight;
    outline: auto 5px -webkit-focus-ring-color;
}

Voir Aussi ce site sur pourquoi Réinitialiser les styles outline est généralement une mauvaise idée.

5
répondu psaniko 2016-07-25 14:56:22

FWIW: En utilisant Chrome sur un Mac, je reçois une couleur de contour bleu lors de l'utilisation du mode navigateur normal. Lorsque j'utilise la vue de l'appareil, j'obtiens une couleur de contour jaune/or.

Je ne sais pas pourquoi cela change-était en fait très déroutant. Voir les exemples ci-dessous.

périphérique activé, contour jaune

normal-navigateur, contour bleu

2
répondu Federico 2016-07-19 17:46:23