Jak mogę sprawdzić i poprawić: przed i: po pseudo-elementach w przeglądarce?

92

Stworzyłem dość skomplikowane elementy DOM z pseudoelementem: after i chciałbym mieć możliwość sprawdzenia i dostrojenia ich w przeglądarce Chrome lub Firebug lub ich odpowiedniku.

Pomimo wzmianki o tej funkcji w tym poście na blogu WebKit / Safari (z 2010 r.), Nie mogę jej znaleźć ani w przeglądarce Chrome, ani w Safari. Chrome ma przynajmniej pola wyboru do sprawdzenia: hover,: odwiedzone i: aktywne stany, ale: przed i: po nigdzie nie widać.

Dodatkowo w tym poście na blogu (datowanym na 2009 rok!) Wspomniano, że ta możliwość istnieje w narzędziach programistycznych IE, ale obecnie używam systemu Mac OS, więc nie jest to dla mnie pomocne. Ponadto IE nie jest przeglądarką, na którą głównie kieruję.

Czy istnieje sposób sprawdzenia tych pseudoelementów?

EDYCJA: Oprócz tego, że myliłem się, że Firebug nie może sprawdzić tych elementów, stwierdziłem, że Opera jest całkiem dobra w inspekcji: przed i: po wyjęciu z pudełka.

majackson
źródło
1
dzięki firebugowi możesz sprawdzić styl tych pseudoelementów.
Fabrizio Calderan,
@ F.Calderan jak? Czy aktualizuje stronę, jeśli je zmodyfikuję?
majackson
tak, jestem w stanie zmienić właściwości pseudoelementów przez firebug 1.9.1 na Fx11 / MacOS
Fabrizio Calderan
Ach tak, ja też to widzę. Przepraszam, pomyliłem nowe, wbudowane narzędzia programistyczne Firefoksa (których wcześniej nie używałem) z jakimś rodzajem przeprojektowania Firebuga z niewytłumaczalnie mniejszą liczbą funkcji. Stoję poprawione;)
majackson
Sprawdź tę odpowiedź, aby przetestować pseudoelementy w chrome i firefox stackoverflow.com/a/20716179/1868660
Subodh Ghulaxe

Odpowiedzi:

62

W narzędziach deweloperskich Chrome style pseudoelementu są widoczne w panelu:

W przeciwnym razie możesz również wprowadzić następujący wiersz w konsoli JavaScript i sprawdzić zwrócony CSSStyleDeclarationobiekt:

getComputedStyle(document.querySelector('html > body'), ':before');
Rob W
źródło
9
Nie widzę tego. Jaki element sprawdzasz, aby zobaczyć, że pojawia się on w panelu? Ponadto jakiej wersji Chrome używasz?
majackson
@majackson Chrome 18.0 Ubuntu 11.10. Sprawdź xw tym demo: jsfiddle.net/2M6JA
Rob W
Widzę pseudoklasy w twoim demo, ale nie w moim kodzie, co każe podejrzewać, że mam inny, inny problem. W każdym razie oczywiste jest, że masz rację, więc oznaczę to jako rozwiązane - wielkie dzięki!
majackson
W niektórych przypadkach nie można sprawdzić: pseudo style. Sprawdź to rozwidlenie skrzypiec @Rob W: jsfiddle.net/RQsY6 => nie można sprawdzić pseudoelementu w tagu a.
Fabien Quatravaux,
1
@FabienQuatravaux Przynajmniej w Chrome 23, widzę div::beforez content: 'x';- zdjęcie: i.stack.imgur.com/nQ2TZ.png . EDYCJA: Nasze skrzypce wcale się nie różnią. Czy chcesz zamienić divz a? Mimo to, nadal można sprawdzić pseudoelement : jsfiddle.net/RQsY6/1 (wystarczy wybrać znacznik kotwicy w drzewie DOM).
Rob W
33

Od wersji Chrome 31 pseudoelementy są wyświetlane w panelu Elementy jako elementy podrzędne ich rodzica, jak pokazano na poniższym obrazku:

Zrzut ekranu

Możesz je wybrać tak jak normalny element, ale jeśli usuniesz contentstyl, pseudoelement również zostanie usunięty, a fokus devtools zmieni się na jego element nadrzędny.

Wygląda na to, że odziedziczone style CSS nie są widoczne i nie można edytować zawartości CSS z panelu elementów.

AMK
źródło
22

Chrome nie pokaże: przed i: po pseudoelementach w drzewie DOM, jeśli brakuje im atrybutu „content”. Powinien być ustawiony, nawet jeśli jest ustawiony na zero.

To się nie pojawi:

:after {
  background-color: red;
}

To pojawi się w inspektorze:

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

Mam nadzieję, że to pomoże.

Muzyka pop
źródło
5

Po wielu frustracji, zorientowali się, że Firefox nie pokazuje pseudo elementów w drzewie dokumentu w ogóle , ale jeśli wybrać dokładny element, który ma pseudo elementu (ów) zdefiniowana, to style dla jego elementu (ów pseudo ) są wyświetlane w sekcji zasad stylu po prawej stronie. Dotyczy to zarówno firebuga, jak i wbudowanej inspekcji („Q”) i jestem zszokowany, że nikt wcześniej nie zadał sobie trudu, aby wyjaśnić to jasno.

Oczywiście, obsługa pseudoelementów chrome / chromium jest znacznie lepsza, ponieważ można je wybierać (zarówno w drzewie dokumentu, jak i bezpośrednio na stronie) i sprawdzać tak jak zwykłe elementy, z układem, właściwościami i wszystkim innym, niezależnie od ich „właściciela” ”.

Wersje przeglądarek, których obecnie używam: Chromium 40.0.2214.91, Firefox 31.3.0.

aditsu zrezygnowało, ponieważ SE jest ZŁE
źródło
1

Firefox ma tę funkcję od jakiegoś czasu, po prostu kliknij prawym przyciskiem myszy, „sprawdź element” i zobacz elementy przed i po w prawym panelu inspektora.

NoBugs
źródło
1
I nie widać :afteri :beforepseudo elementów w „rodzimym” narzędzie inspektor - przełączanie elementów pseudo daje mnie hover, activei focustylko. Widzę je jednak w Firebug.
sameers
@sameers Czy mówisz o przełącznikach w menu prawym przyciskiem myszy? Ponieważ: przed i: po nie są tam przełączane, powinny zawsze pojawiać się w inspektorze css.
NoBugs,
0

Wybierz Element -> wybierz hover zaznaczone ---> możesz zobaczyć :: przed i po elementach Wybierz Element -> wybierz hover zaznaczone ---> możesz zobaczyć :: przed i po elementach

vasu
źródło
0

Przynajmniej od wersji Chrome 62 w DevTools jest ustawienie `` Pokaż cień DOM klienta użytkownika '', które wyświetla dodatkowe pseudoelementy, takie jak symbole zastępcze danych wejściowych , które w przeciwnym razie nie się w drzewie DOM.

Więcej informacji: https://stackoverflow.com/a/26853319/3963594

jgangso
źródło