2012-01-28 2 views
3

Почему нельзя использовать body::selection, когда я хочу что-нибудь, что может выделить быть цвет я желаемое, все включают р IMG Li h1Используйте тело :: выбор, я хочу, чтобы настроить цвет подсветки

Примеры здесь Теперь я хочу все изюминки быть красным цветом, но я использую body::selection, он никогда не работает

http://jsfiddle.net/kent93/nu6ju/

+0

В чем Ваш вопрос? пример работает как шарм: 'body :: selection {background-color: red; } 'делает именно то, что он должен делать. – c69

+0

мой вопрос, почему он меняет цвет img p li h1 на красный цвет? –

+0

потому что все гнездо внутри тега тела –

ответ

10

Если вы хотите применить фон выбора для всех элементов, опустить селектор типа:

::selection { 
    background: red; 
} 

И по этому вопросу, добавить ::-moz-selection поэтому он работает в Firefox тоже:

::-moz-selection { 
    background: red; 
} 
::selection { 
    background: red; 
} 

Это никогда не было принято решение о том, как именно стили вы установили для E::selection для любого элемента E должны распространяться на потомки E. Есть более углубленное обсуждение in the www-style mailing list. Именно по этой причине ::selection был полностью исключен из CSS3 с последней версией LC для CSS3 UI; см this section, который говорит:

:: Выбор псевдо-элемент уронил, так как он был исключен из селекторов после тестирования обнаружило проблемы совместимости и дополнительные детали для изучения/определить.

Мое лучшее предположение, что браузеры (по крайней мере, Firefox) просто не применяют одно и то же правило к элементам-потомкам. Поэтому, если вы применяете псевдоэлемент к body, тогда только текст body будет иметь собственный фон выбора; все вложенное внутри него не будет иметь фон выбора.

+0

возможно, вы правы, потому что я пробовал много сделать, но никто не заставляет меня чувствовать себя счастливым –

0

Если вы хотите, чтобы остановить каскадное, вы можете добавить

body *::selection { background: inherit; }

Так только текст на верхнем уровне будет выбран с красным. Пример: http://jsfiddle.net/nu6ju/4/

Смежные вопросы