2015-10-07 11 views
5

Po problemie, w którym przez dodanie białych znaków otrzymuję następujące elementy podkreślające dziwność przesunięcia. Czy to naprawdę oczekiwane zachowanie?Dlaczego ustawienie selektora pierwszej litery z białymi znakami powoduje przesunięcie podświetlenia myszy?

To wydaje się wpływać Chrome/Safari

Highlighting weirdness

kwestią jest tu przytoczony: https://jsfiddle.net/qsa99cc6/

CSS:

p:first-letter { 
    text-transform: uppercase; 
} 

HTML:

<p> 
     highlight me! this won't work because there's whitespace in the &lt;p&gt; 
</p> 

<p>highlight me! This should work because there isn't</p> 
+0

W przeglądarce Firefox 41 działa poprawnie, ale potwierdziłem problem z Chrome. –

+0

to jest nietypowe, ale dlaczego w pierwszej kolejności potrzebujesz białych znaków. Nie możesz użyć padding-left? Jakie są twoje ograniczenia? – Chris

+0

Biała spacja jest artefaktem z mojego systemu kompilacji. Naprawiłem problem przez usunięcie go, jestem tylko ciekawy, dlaczego tak się dzieje :) – Mark

Odpowiedz

1

To zachowanie jest różne w różnych przeglądarkach. Może to być też jakiś błąd w przeglądarce. Być może te przeglądarki identyfikują pseudoelement :first-letter w ten sam sposób, co pseudoelementy: :before i .

+0

Pseudoelement nie jest wybierany z definicji. Pseudoelementy nie mają absolutnie nic wspólnego z wyborem. Istnieje nawet pseudoelement * do * selekcji, który całkowicie odwołuje się do tej definicji. – BoltClock

+0

Rozumiem, ale domyślam się, że przeglądarki mogą zidentyfikować go w taki sam sposób, jak niewybrane pseudoelementy. –

+1

Wystarczająco fair, twoja edycja ma sens. – BoltClock