Как я могу использовать CSS3 :: selection без изменения цвета по умолчанию и цвета фона? - PullRequest
6 голосов
/ 30 декабря 2011

Следующие строки включены в шаблон HTML5 Boilerplate по умолчанию:

::-moz-selection{background:#fe57a1;color:#fff;text-shadow:none;}
::selection{background:#fe57a1;color:#fff;text-shadow:none;}

Однако я хочу оставить цвет выделения по умолчанию для ОС (синий в Windows, я думаю, что он коричневато-оранжевый в Ubuntu). Если я пропущу свойство background, фона не будет.

1 Ответ

3 голосов
/ 30 декабря 2011

Поскольку этот селектор официально не поддерживается для CSS, будучи удаленным из CSS3 и в настоящее время не представлен в черновике для CSS4 , на самом деле не так много документации о том, как точно селекторследует применять.

Как определено селектором, он предназначен для переопределения системных цветов выделения текста по умолчанию.Браузеры, очевидно, восприняли это буквально.При указании ::selection эти цвета немедленно перезаписываются, даже если вы их не указали.Проблема в том, что системные настройки по умолчанию не являются частью CSS.Браузер просматривает вашу декларацию и думает: «игнорируйте настройки системы по умолчанию, вместо этого используйте то, что в этой декларации».Так как там не указаны цвета, цвета не применяются (фон - нет, а цвет наследуется).Ой, довольно сложно сказать, что ваш текст выбран, да?

Это всего лишь теория о том, что может произойти , поскольку, как я уже сказал, документации о том, чтона самом деле происходит, или то, что должно произойти.

Честно говоря, единственный способ узнать наверняка, это посмотреть исходный код и посмотреть, что он делает, когда видит этот селектор.Возможно, было бы проще попросить кого-нибудь из команды разработчиков выбрать один из этих браузеров.В любом случае все равно будет сложно.Может быть, вы могли бы представить отчет об ошибке, и они могут вникнуть в проблему немного больше ...

...