2011-06-20 4 views
1

Я пытаюсь изменить стили выбора по умолчанию, используя псевдоэлементы ::selection и ::-moz-selection. Я успешно изменил цвет выделения и фона с этими двумя правилами:Изменение цвета границы при выборе

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

Однако, мне также нужно изменить border-color белым по выбору для ссылок. Я пытаюсь сделать это с этим CSS:

a::-moz-selection { border-color:#FFF;} 
a::selection {border-color:#FFF; } 

Даже когда я добавить !important переопределение, Safari не стиль цвет границы.

Что мне не хватает? Почему я не могу изменить ссылку border-color на выбор?

+0

Возможно ли, что вы имеете в виду фокус или активный, а не выбор? – NGLN

+0

Нет, я определенно имею в виду выбор. – daysrunaway

ответ

2

Вы не можете определить border стили для выбора текста.

Try определении outline вместо (он должен был быть одним из разрешенных свойств, как указано в old spec и SitePoint Reference):

a::-moz-selection { outline: 1px solid #fff; } 
a::selection { outline: 1px solid #fff; } 

Если это не работает, то я боюсь, браузер просто не поддерживает контуры на ::selection.

Помните, что ::selection has been move out of the Selectors spec, а остальная часть уровня CSS 3 все еще является черновиком, поэтому вы не можете полагаться на браузеры, которые его правильно или полностью пока что не используют.

+0

У вас есть источник? – daysrunaway

+1

@daysrunaway: примерно десять лет назад, когда CSS3 был в очень ранних этапах проекта, а ':: selection' все еще находился в определении [этот документ] (http://www.w3.org/TR/2001/CR- css3-selectors-20011113/# UIfragments) не указывал границу как одно из свойств, которые вы можете использовать. Однако внедрение UA по-прежнему соответствует тем же правилам. – BoltClock

+0

Спасибо за это. Наверное, мне придется придерживаться 'text-decoration: underline;' вместо этого. – daysrunaway

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