2011-08-03 25 views

Odpowiedz

10

Szukasz pseudoelementu selection.

::-moz-selection{ background: #000; color:#fff;} 
::selection { background:#000; color:#fff; } 

Również jako notatkę. Jeśli planujesz używać cienia tekstowego w swojej witrynie, polecam dodać text-shadow:none; do Twojego stylu ::selection. Jak widać w skrzypcach this, jest to naprawdę trudne dla oczu.

+0

Sprawia, że ​​łatwiej jest powiedzieć, czy używasz poprawnej nazwy "pseudo-elementu". – BoltClock

+0

Zauważ, że to nie zadziała w IE <9. –

+0

@BoltClock Ah, ale o wiele mniej zabawnych XD. Mimo to dopilnuję, aby zmienić to na poprawne sformułowanie. – Moses

7

Spójrz na ten artykuł ...

http://css-tricks.com/490-overriding-the-default-text-selection-color-with-css/

... więc tak:

p.moz::-moz-selection { 
    background:#cc0000; 
    color:#fff; 
} 

p.webkit::-webkit-selection { 
    background:#cc0000; 
    color:#fff; 
} 

p.normal::selection { 
    background:#cc0000; 
    color:#fff; 
} 

Mam nadzieję, że to pomaga.
Hristo

+0

Ponieważ kaskady CSS, należy zawsze upewnić się, że selektory z prefiksem dostawcy zostały ustawione powyżej "standardowego" selektora. W przeciwnym razie przyszłe przeglądarki nadal będą domyślnie korzystać z własnej implementacji dostawcy, nawet jeśli dodają obsługę standardowej wersji. – Moses

+0

@Moses ... Nie jestem pewien co masz na myśli. – Hristo

+0

Przedrostki dostawcy służą jako przeglądarki do implementacji funkcji, zanim te funkcje zostaną oficjalnie wystandaryzowane przez W3C. Jednak po oficjalnym standardzie nie ma powodu, aby przyszłe przeglądarki wymagały prefiksów. Za pomocą twojego kodu przeglądarka najpierw napotka znormalizowany ':: selection', później w arkuszu stylów zobaczy' '- moz-selection'. Ponieważ przeglądarka teraz rozumie oba, wybierze drugą, ponieważ napotkała ją jako ostatnią. Jest to złe, ponieważ prawdopodobnie chcesz użyć nowej i standardowej implementacji, a nie starej wersji. – Moses

2

Spróbuj

::selection 
{ 
background:#999; 
color:#fff; 
}