How can I inspect and tweak :before and :after pseudo-elements in-browser?

CssFirefoxGoogle ChromeFirebugGoogle Chrome-Devtools

Css Problem Overview


I have created some fairly elaborate DOM elements with an :after pseudo-element, and I'd like to be able to inspect and tweak them in either Chrome Inspector or Firebug or equivalent.

Despite this feature being mentioned in this WebKit/Safari blog post (dated 2010), I can't find this feature at all in either Chrome or Safari. Chrome does at least have checkboxes to inspect :hover, :visited and :active states, but :before and :after are nowhere to be seen.

Additionally, this blog post (dated 2009!) mentions this capability exists in the IE dev tools, but I'm currently using Mac OS, so this is no help to me. Additionally, IE is not a browser I'm primarily targeting.

Is there any way of inspecting these pseudo-elements?

EDIT: In addition to being wrong about Firebug being unable to inspect these elements, I've found Opera to be pretty good at Inspecting :before and :after elements out of the box.

Css Solutions


Solution 1 - Css

In Chrome's Dev tools, the styles of a pseudo-element are visible in the panel:

Otherwise, you can also input the following line in the JavaScript console, and inspect the returned CSSStyleDeclaration object:

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

Solution 2 - Css

As of Chrome 31 pseudo elements show in the elements panel as child elements of their parent as shown in the following image:

Screenshot

You can select them as you would a normal element but if you remove the content style then the pseudo element will also be removed and the devtools focus will change to it's parent.

It appears that inherited CSS styles are not viewable and you can't edit CSS content from the elements panel.

Solution 3 - Css

Chrome won't show :before and :after pseudo elements in the DOM-tree, if they miss "content" attribute. It should be set, even if it is set to nothing.

This won't show up:

:after {
  background-color: red;
}

This will show up in the inspector:

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

Hope it helps.

Solution 4 - Css

At least since Chrome 62 there's a setting in DevTools to 'Show user agent shadow DOM' which displays additional pseudo-elements like input placeholders, which wouldn't show up in the DOM tree otherwise.

More information: https://stackoverflow.com/a/26853319/3963594

Solution 5 - Css

After a lot of frustration, I figured out that firefox doesn't show the pseudo elements in the document tree at all, but if you select the exact element which has pseudo element(s) defined, then the styles for its pseudo element(s) are shown in the style rules section on the right side. This is true for both firebug and the built-in inspect ("Q"), and I am shocked that nobody bothered to explain this clearly before.

Clearly, chrome/chromium's handling of pseudo elements is vastly superior, as they can be selected (both in the document tree and directly on the page) and inspected just like regular elements, with layout, properties and everything else, independent of their "owner".

Browser versions I'm using currently: Chromium 40.0.2214.91, Firefox 31.3.0.

Solution 6 - Css

Firefox has had this feature for awhile now, just right click, "inspect element", and see the before and after elements in the right panel of the inspector.

Solution 7 - Css

Select Element--> select hover checked ---> you can see ::before and after elements Select Element--> select hover checked ---> you can see ::before and after elements

Attributions

All content for this solution is sourced from the original question on Stackoverflow.

The content on this page is licensed under the Attribution-ShareAlike 4.0 International (CC BY-SA 4.0) license.

Content TypeOriginal AuthorOriginal Content on Stackoverflow
QuestionmajacksonView Question on Stackoverflow
Solution 1 - CssRob WView Answer on Stackoverflow
Solution 2 - CssA.M.KView Answer on Stackoverflow
Solution 3 - CsspopView Answer on Stackoverflow
Solution 4 - CssjgangsoView Answer on Stackoverflow
Solution 5 - Cssaditsu quit because SE is EVILView Answer on Stackoverflow
Solution 6 - CssNoBugsView Answer on Stackoverflow
Solution 7 - CssvasuView Answer on Stackoverflow