: активный селектор css не работает для IE8 и IE9
Вот мой сайт . Это последняя проблема серии кроссбраузерных расхождений, которые я испытал и решил благодаря сообществу.
В основном, в Internet Explorer 8 и Internet Explorer 9 :active
стили не применяются к меню. При нажатии он должен становиться темнее. Пожалуйста, дайте мне знать, почему и как исправить. Заранее спасибо.
- Загрузка нескольких файлов без использования Zip-файла
- У IE автономный браузер все еще существует (и работает на Win 7?)
- Как открыть пустое новое окно в IE9 вместо копии текущего окна?
- Сенсорные жесты в IE не работают без запуска explorer.exe
- Сколько времени URL-адрес может получить Internet Explorer 9?
- Как отключить горячие клавиши в Internet Explorer 9?
- Являются ли CSS3 :: before и :: после псевдоэлементов, поддерживаемых IE9, или нет?
- Как отключить защищенный режим в Internet Explorer 9?
- Сделать шрифты Adobe работать с CSS3 @ font-face в IE9
- Какую техническую причину Microsoft дал для Internet Explorer 9 в Windows XP?
- IE9 jQuery AJAX с CORS возвращает «Доступ запрещен»
- Размер фона с SVG в IE9-10
- Параметры X-Frame-Allow - из нескольких доменов
Активный псевдоclass применяется, когда пользователь активирует элемент. Например, между тем, как пользователь нажимает кнопку мыши и отпускает ее. См. Документацию W3.
Но вы применяете свой :active
селектор к своему элементу
, который не может иметь активного состояния, так как он никогда не активируется – только зависает. Вы должны применить <- True для IE 6. :active
состояние к
UPDATE: вот тестовый пример в jsFiddle, поскольку вы можете видеть, что он работает нормально на элементе, но не в порядке на
Интересная информация, которую я нашел здесь
Активный псевдоclass применяется, когда пользователь выбирает ссылку.
CSS1 был немного неоднозначным в этом поведении: «Активная» ссылка – это та, которая в настоящее время выбрана (например, нажатием кнопки мыши) читателем ». Кроме того, в CSS1: активный был взаимоисключающим: link и: visited. (И не было: наведите псевдоclass.)
CSS2 изменил ситуацию, так что правила для: active могут применяться одновременно с: visited или: link. И поведение было объяснено немного лучше: «Активный псевдоclass применяется, когда пользователь активирует элемент. Например, между тем, как пользователь нажимает кнопку мыши и отпускает его».
IMO, FF и др. Соответствуют CSS2 лучше IE. Но так как ссылка должна загружать новую страницу, IE может законно сказать, что ссылка все еще «активна», а новая страница загружается, что и происходит.
Вы можете увидеть подобное встречное интуитивное поведение в FF, щелкнув ссылку, но перемещая мышь от ссылки, удерживая нажатой кнопку мыши. Ссылка не активирована (новая страница не загружена), но ссылка остается в активном состоянии. С другой стороны, Chrome и Opera деактивируют ссылку, но в разное время; Chrome, как только мышь покинет зону ссылки, Opera не будет до тех пор, пока не будет отпущена кнопка мыши. В этом примере IE ведет себя так же, как FF. (Нажмите Enter после перетаскивания мыши из ссылки, и вы увидите больше различий в поведении.)
Я бы не назвал ни одного из этих различий «ошибками» из-за двусмысленностей в спецификации.
Единственное, что я могу предложить, – согласиться с тем, что вы не можете контролировать каждый аспект поведения браузера. У пользователей разных браузеров разные ожидания поведения, и если вы начнете возиться с ожиданием пользователя, вы ошибетесь.
Просто ради релевантности и для того, чтобы сэкономить кому-либо еще трудность поиска решения, я также нашел «ошибку» в IE <= 10, где вы не можете применять стили к активному ребенку, например;
a:active img { position:absolute; top:-30px; }
Вышеизложенное не изменит положение изображения в IE <= 10, и в этом случае вам нужно будет применить: активный на самом дочернем элементе;
a:active img, a img:active { position:absolute; top:-30px; }
В большинстве случаев это не идеальное решение, так как любой текст внутри якоря должен иметь более высокое значение z-индекса, чем изображение, что означает, что изображение изменит только его положение на основе щелчка самого изображения (с изображением: активное состояние) … который оставил меня в незначительной привязке, но привязана ни к чему (для решения только css).
Поэтому, хотя это не исправление, это скорее примечание «предупреждение» для других о падении на: активный псевдоселектор в IE. Мусор. знак равно