Я часто обнаруживаю, что хочу отлаживать проблемы компоновки CSS, связанные с изменениями DOM, вызванными Javascript в ответ на событие зависания или различные правила CSS, применяемые в связи с селектором: hover.
Обычно я использую Firebug для проверки элемента, который вызывает у меня проблемы, и вижу, что это за свойства CSS, и откуда эти свойства. Тем не менее, при наведении курсора это становится невозможным, поскольку, как только вы перемещаете указатель мыши на панель Firebug, элементы, которые вас интересуют, больше не зависают, применяемые правила CSS различны и (в случае JS hovers) DOM изменен.
Можно ли каким-либо образом "заморозить" состояние DOM и приложение: hover, чтобы проверить DOM, как это было во время события зависания?
Конечно, любые другие идеи о том, как отлаживать эту проблему, приветствуются.
Добавьте обработчик функции onmouseover
к элементу, который принимает :hover
. Внутри этой функции вызовите console.info(element)
на любой элемент, о котором вы хотели бы узнать.
myHoverElement.onmouseover = function() {
console.info(document.getElementById("someotherelementofinterest"));
};
Когда вы запустите это с включенным firebug, элемент будет доступен для проверки в консоли firebug.
Вы можете сделать это в Firebug, но его немного "багги". Если вы проверите элемент и затем откройте вкладку html, например, на вкладке DOM, вернитесь на вкладку html, вкладка c CSS "style" справа будет иметь селектор со стрелкой вниз, в котором вы можете выбрать: зависает состояние этого элемента, чтобы быть активным. Отказывается, чтобы переключить вкладки, чтобы показать это, но это работает для меня.
При проверке ссылок Firebug показывает состояние CSS по умолчанию, то есть стили, применяемые к ссылке:. По умолчанию стили: hover и: active не отображаются. К счастью, вы можете изменить состояние ссылки, нажав "Стиль" и выбрав соответствующую опцию:
В firebug, находясь в HTML-представлении, посмотрите на правую панель и найдите вкладку "Стили". Нажмите стрелку вниз и выберите :hover
.
В Firefox (v33.1.1):
В Chrome (версия 35):
В некоторых инструментариях JavaScript, таких как Dojo, используйте классы CSS, такие как dijitButtonHover, в стиле, а не: hover.
Итак, вкладка Style: hover trick не работает.
Вместо этого вы можете щелкнуть правой кнопкой мыши по Node (какие классы CSS меняются) на вкладке HTML и "Перерыв по изменению атрибута"
Вы также можете проверить этот элемент, затем в стиле вкладки должна быть небольшая стрелка вниз. У него будет что-то вроде "Показать агент пользователя", "Развернуть стенографические свойства", тогда должно быть еще 2 под этим (я предполагаю, что вы проверяете что-то, что имеет состояние зависания) :active
и :hover
выберите :hover
, и вы должны быть золотыми.
для проблем css, я считаю, что плагин веб-разработчиков неоценим:
http://chrispederick.com/work/web-developer/
загрузите его, тогда у вас есть 2 возможных инструмента.
унаследованный css из файлов любого элемента moused-over, используйте shift-ctrl-y
вычисленный css (включая любой встроенный стиль = применяется, который не находится в .css файле, или через .css-метод из jquery и т.д.) - нажмите shift-ctrl-f
последний также возвращает все классы, применяемые к элементу.
конечно, он имеет и другие большие возможности, такие как превосходная отладка форм, в том числе редактирование скрытых полей и файлов cookie (которые могут использоваться для тестирования проникновения)
В firebug нет идеального решения (эффект mouseover/hover-simulation).
Однако есть несколько способов изменить состояние зависания в firebug:
Добавьте состояние :active
вместе со своим :hover
a:hover, a:active { ... }
Если вы наведите указатель мыши на свой элемент, перетащите его и отпустите, он останется активным.
Поверните состояние :hover
в класс .hover
Вы можете отредактировать правило CSS, щелкнув исходный файл (на вкладке "Стиль Firebug" )
Затем, конечно, вы добавили (и удалили) класс .hover
из вашего элемента.
У меня была такая же проблема, и я обнаружил, что, хотя я не мог проверять объекты hover в Firefox с Firebug, Safari Web Inspector заморозил текущее состояние и разрешил проверку. Чтобы активировать веб-инспектор Safari, просто введите следующую строку в терминал и перезапустите Safari:
defaults write com.apple.Safari WebKitDeveloperExtras -bool true
Активируйте элемент наведения в браузере, затем щелкните правой кнопкой мыши и выберите "Осмотреть элемент". Страница будет заморозить текущее состояние, позволяющее вам проверять мимолетные объекты на содержание вашего сердца.
Я знаю, что этот пост немного устарел, но для тех, кто нашел это в Google, я создал инструмент перекрестного браузера, который позволяет визуализировать ваш HTML/CSS-макет, просто перемещая мышь. Вы можете легко просматривать элементы в своем режиме зависания.
Да, вы можете щелкнуть правой кнопкой мыши "Осмотреть элемент" при запуске состояния зависания. Это работало для меня в Firebug и WebKit.
Я часто делаю несколько альтернативных CSS или Javascript, чтобы "заморозить" мое зависающее событие; подстройте его до совершенства с помощью Firebug и верните мой палец на место.