Это не столько ответ, сколько объяснение того, что происходит:
История
Моей причиной для удаления контура оперы было добавление собственного контура. Чтобы добавить схему я использовал:
:focus{
outline:1px dotted #999;
outline-offset:-3px;
}
Это прекрасно работает в любом другом браузере ... кроме Opera. Вместо этого Opera дает вам эту странную интерференционную картину, которая выглядит как контур dotted-dashed
:
теперь, если вы удалите свой контур, у вас все еще будет стандартный контур, который предоставляет Opera, - красивая простая пунктирная линия с шагом 1px:
Поскольку у меня нет способа добавить стиль в каждый браузер, кроме Opera, я решил удалить контур Opera перед добавлением своего собственного. Используя решение brothercake
, -o-transform:rotate(0);
сделайте это, а затем примените мой собственный контур:
Voila!
Объяснение?
Из того, что я могу сказать, Opera добавляет свой собственный вторичный контур поверх любого контура, определенного CSS.
Кажется, что этот вторичный контур имеет независимый цвет, ширину, стиль и смещение.
Цвет противоположен фону,
Ширина 1px
,
Стиль dotted
,
и смещение на 2px
меньше границы.
Извините, стиль изображения отсутствует, загрузка не прошла корректно
Одна интересная вещь заключается в том, что стиль dotted
в Opera outline
не совпадает с пунктирным контуром CSS, иначе не было бы интерференционной картины с обоими:
Вывод:
Как я уже говорил выше, я использую решение brothercake
, которое сводит на нет границу оперы:
-o-transform:rotate(0);
Как он упомянул в своем последнем комментарии, у этого исправления есть некоторые проблемы, так как это ошибка рендеринга:
Я заметил, что при возврате фокуса окна или вкладки на страницу, содержащую кнопку, , если кнопка ранее имела фокус, контур Opera будет появляться до тех пор, пока кнопка не потеряет фокус или не окажется над ней.