мы просто должны всегда обеспечивать правильный цвет и фоновые значения как для выделения, так и для основного стиля.
орые вопросы об использовании CSS для указания цвета выделенного текста:
https://developer.mozilla.org/En/CSS/::selection Говорит, что,
::selection
был разработан дляCSS3 селекторы но удалено из текущего проекта CSS3. В любом случае, это реализовано в браузерах, и поддержка будет продолжена.
Почему это было удалено?
Представьте себе, что в CSS по умолчанию существует правило, подобное следующему:
::selection { background-color: Highlight; color: HighlightText; }
Далее представьте, что правило, подобное следующему, определено в любой созданной для конкретного сайта таблице стилей:
body { background-color: white }
Учитывая эти правила, каким будет цвет фона выделенного основного текста:white
, или жеHighlight
?
Возможно, правило в таблице стилей автора должно переопределить правило по умолчанию: потому что в соответствии со спецификой,body
так же конкретно, как::selection
и указывается позже (и поэтому должно переопределять предыдущую запись).
С другой стороны, это приведет к тому, что текст будет невидимым при выделении (потому что еслиHighlight
синий иHighlightText
белый, так что выделенный текст будет белым на синем, а затем переопределитbackground-color
выделенного текста, чтобы он был белым, чтобы он был белым на белом).
Предполагая, что поведение на шаге 2 нежелательно, как его избежать?
Скажите, что это ошибка в пользовательской таблице стилей, которая не должна указыватьbackground-color
без указанияcolor
?
Скажи этоbody
не соответствует выбранному основному тексту, кроме случаев, когда::selection
псевдоэлемент указывается как часть селектора?