Як я можу перевірити та налаштувати псевдоелементи у браузері: before та: after?


92

Я створив кілька досить складних елементів DOM із псевдоелементом: after, і я хотів би мати можливість перевіряти та налаштовувати їх у Chrome Inspector або Firebug або в еквіваленті.

Незважаючи на те, що ця функція згадується в цій публікації в блозі WebKit / Safari (від 2010 року), я не можу знайти цю функцію взагалі ні в Chrome, ні в Safari. У Chrome є принаймні прапорці для перевірки: hover,: visit і: активних станів, але: before та: after ніде не видно.

Крім того, у цій публікації в блозі (від 2009 року!) Згадується, що ця можливість існує в інструментах розробника IE, але зараз я використовую Mac OS, тож це мені не допомагає. Крім того, IE не є браузером, на який я націлений переважно.

Чи є спосіб перевірки цих псевдоелементів?

РЕДАГУВАТИ: Окрім помилки щодо того, що Firebug не може перевірити ці елементи, я виявив, що Opera досить добре перевіряє елементи: before і: after з коробки.


1
за допомогою firebug ви можете перевірити стиль цих псевдоелементів.
Фабріціо Кальдеран,

@ F.Calderan як? Чи оновлює сторінку, якщо я їх модифікую?
majackson

так, я можу змінити властивості для псевдоелементів через firebug 1.9.1 на Fx11 / MacOS
Fabrizio Calderan

Ах так, я теж це бачу. Перепрошую, я помилково приймав нові, вбудовані інструменти розробника Firefoxes (якими раніше не користувався) за якийсь редизайн Firebug із незрозуміло меншими можливостями. Я стою виправлений;)
majackson

Перевірте цей відповідь на тест pseudoelements в хромі і світлячок stackoverflow.com/a/20716179/1868660
Subodh Ghulaxe

Відповіді:


62

У інструментах розробника Chrome стилі псевдоелемента видно на панелі:

В іншому випадку ви також можете ввести наступний рядок у консолі JavaScript і перевірити повернутий CSSStyleDeclarationоб’єкт:

getComputedStyle(document.querySelector('html > body'), ':before');

9
Я цього не бачу. Який елемент ви перевіряєте, щоб побачити, як це з’являється на панелі? Крім того, яку версію Chrome ви використовуєте?
majackson

@majackson Chrome 18.0 Ubuntu 11.10. Огляньте xв цій демонстрації: jsfiddle.net/2M6JA
Роб W

Я бачу псевдокласи у вашій демонстрації, але не в моєму коді, що змушує мене підозрювати, що у мене інша, інша проблема. У будь-якому випадку, очевидно, що ви маєте рацію, тому я позначу це як вирішене - велике спасибі!
majackson

Він супроводжує: псевдостилі в деяких випадках неможливо перевірити. Ознайомтесь з цим розгалуженням скрипки @Rob W: jsfiddle.net/RQsY6 => псевдоелемент тегу не можна перевірити.
Fabien Quatravaux

1
@FabienQuatravaux Принаймні в Chrome 23, я бачу div::beforeз content: 'x';- скріншот: i.stack.imgur.com/nQ2TZ.png . EDIT: Наші скрипки взагалі не відрізняються. Ви хотіли замінити divна a? Тим не менше, псевдоелемент все ще можна перевірити: jsfiddle.net/RQsY6/1 (просто виберіть тег прив'язки в дереві DOM).
Роб W

32

Станом на Chrome 31 псевдоелементи відображаються на панелі елементів як дочірні елементи їх батьків, як показано на наступному зображенні:

Знімок екрана

Ви можете вибрати їх як звичайний елемент, але якщо ви видалите contentстиль, то псевдоелемент також буде видалено, а фокус devtools зміниться на батьківський.

Здається, успадковані стилі CSS не можна переглядати, і ви не можете редагувати вміст CSS з панелі елементів.


22

Chrome не відображатиме псевдоелементи: before та: after у дереві DOM, якщо вони пропускають атрибут "content". Його слід встановити, навіть якщо для нього встановлено значення нічого.

Це не відображатиметься:

:after {
  background-color: red;
}

Це з’явиться в інспекторі:

:after {
  content: "";   
  background-color: red;    
}

Сподіваюся, це допоможе.


5

Після того, як багато розчарувань, я зрозумів, що світлячок не вказує елементи псевдо в дереві документа на всіх , але якщо ви вибираєте точний елемент , який має псевдо елемент (и) визначено, то стилі для його псевдо елемента (ів ) показані в розділі правил стилю з правого боку. Це справедливо як для пожежної помилки, так і для вбудованої перевірки ("Q"), і я вражений тим, що ніхто раніше не потрудився це чітко пояснити.

Очевидно, що хром / хром обробляє псевдоелементи набагато краще, оскільки їх можна виділити (як у дереві документів, так і безпосередньо на сторінці) та перевірити, як і звичайні елементи, з макетом, властивостями та всім іншим, незалежно від їх "власника" ".

Версії браузера, якими я зараз користуюся: Chromium 40.0.2214.91, Firefox 31.3.0.


1

Firefox вже деякий час має цю функцію, просто клацніть правою кнопкою миші, "перевірити елемент", і перегляньте елементи до та після на правій панелі інспектора.


1
Я не бачу :afterі :beforeпсевдоелементи в "рідному" інструменті інспектора - перемикання псевдоелементів дає мені hover, activeі focusлише. Однак я бачу їх у Firebug.
sameers

@sameers Ви говорите про перемикання в меню правою кнопкою миші? Оскільки: before та: after - це не те, що ви там перемикаєте, вони завжди повинні відображатися в інспекторі css.
NoBugs

0

Виберіть Елемент -> виділіть наведення курсора ---> Ви можете побачити :: до та після елементів Виберіть Елемент -> виділіть наведення курсора ---> Ви можете побачити :: до та після елементів


0

Принаймні, починаючи з Chrome 62, у DevTools є параметр "Показати тінь агента користувача DOM", який відображає додаткові псевдоелементи, такі як заповнювачі вводу , які інакше не відображатимуться в дереві DOM.

Більше інформації: https://stackoverflow.com/a/26853319/3963594

Використовуючи наш веб-сайт, ви визнаєте, що прочитали та зрозуміли наші Політику щодо файлів cookie та Політику конфіденційності.
Licensed under cc by-sa 3.0 with attribution required.