<?xml version="1.0" encoding="UTF-8"?><rss version="2.0"
	xmlns:content="http://purl.org/rss/1.0/modules/content/"
	xmlns:dc="http://purl.org/dc/elements/1.1/"
	xmlns:atom="http://www.w3.org/2005/Atom"
	xmlns:sy="http://purl.org/rss/1.0/modules/syndication/"
		>
<channel>
	<title>Comments on: Pseudo-Phantoms</title>
	<atom:link href="http://meyerweb.com/eric/thoughts/2009/11/03/pseudo-phantoms/feed/" rel="self" type="application/rss+xml" />
	<link>http://meyerweb.com/eric/thoughts/2009/11/03/pseudo-phantoms/</link>
	<description>Things that Eric A. Meyer, CSS expert, writes about on his personal Web site; it&#039;s largely Web standards and Web technology, but also various bits of culture, politics, personal observations, and other miscellaneous stuff</description>
	<lastBuildDate>Fri, 19 Mar 2010 00:27:46 -0400</lastBuildDate>
	<generator>http://wordpress.org/?v=2.9.2</generator>
	<sy:updatePeriod>hourly</sy:updatePeriod>
	<sy:updateFrequency>1</sy:updateFrequency>
		<item>
		<title>By: ceviri</title>
		<link>http://meyerweb.com/eric/thoughts/2009/11/03/pseudo-phantoms/#comment-492989</link>
		<dc:creator>ceviri</dc:creator>
		<pubDate>Sat, 20 Feb 2010 14:01:25 +0000</pubDate>
		<guid isPermaLink="false">http://meyerweb.com/eric/thoughts/?p=1180#comment-492989</guid>
		<description>Once upon a time in Mozilla, before Firebug  the venerable DOM Inspector had a nice feature for this.</description>
		<content:encoded><![CDATA[<p>Once upon a time in Mozilla, before Firebug  the venerable DOM Inspector had a nice feature for this.</p>
]]></content:encoded>
	</item>
	<item>
		<title>By: Eric Meyer</title>
		<link>http://meyerweb.com/eric/thoughts/2009/11/03/pseudo-phantoms/#comment-489428</link>
		<dc:creator>Eric Meyer</dc:creator>
		<pubDate>Fri, 08 Jan 2010 15:01:38 +0000</pubDate>
		<guid isPermaLink="false">http://meyerweb.com/eric/thoughts/?p=1180#comment-489428</guid>
		<description>Dean, I see Firebug showing styles inherited from &lt;code&gt;:first-child&lt;/code&gt; styles.  If you go to &lt;a href=&quot;http://meyerweb.com/eric/css/tests/pseudos-inspector-test.html&quot; rel=&quot;nofollow&quot;&gt;the test page I linked in the post&lt;/a&gt; and inspect the (newly added) italicized text in the first list item, you should see the &lt;code&gt;li:first-child&lt;/code&gt; styles listed as being inherited.</description>
		<content:encoded><![CDATA[<p>Dean, I see Firebug showing styles inherited from <code>:first-child</code> styles.  If you go to <a href="http://meyerweb.com/eric/css/tests/pseudos-inspector-test.html" rel="nofollow">the test page I linked in the post</a> and inspect the (newly added) italicized text in the first list item, you should see the <code>li:first-child</code> styles listed as being inherited.</p>
]]></content:encoded>
	</item>
	<item>
		<title>By: Dean Hall</title>
		<link>http://meyerweb.com/eric/thoughts/2009/11/03/pseudo-phantoms/#comment-489405</link>
		<dc:creator>Dean Hall</dc:creator>
		<pubDate>Fri, 08 Jan 2010 09:30:03 +0000</pubDate>
		<guid isPermaLink="false">http://meyerweb.com/eric/thoughts/?p=1180#comment-489405</guid>
		<description>I must be missing something, but I&#039;m failing to see where Firebug shows inherited style information for the :first-child pseudo-class. Gecko renders it properly, but Firebug never seems to report it.

Also of note: I thought I had a simple, ad hoc method of debugging the :first-line pseudo-class, but it failed also.

HTML:

&lt;code&gt;&lt;p&gt;&lt;span&gt;Lorem&lt;/span&gt; ipsum dolor sit amet, consectetur adipisicing elit, sed do eiusmod&lt;/p&gt;&lt;/code&gt;

CSS:

&lt;code&gt;p:first-line { font-variant: small-caps; }&lt;/code&gt;

Both Gecko (Firefox) and Webkit (Safari) render the text in the span properly as small caps, but both Firebug and Webkit&#039;s inspector report the span&#039;s font-variant property as &quot;normal&quot; (inherited). While the :first-line pseudo-class isn&#039;t represented in the DOM, the span is, and its style is not being reported properly.</description>
		<content:encoded><![CDATA[<p>I must be missing something, but I&#8217;m failing to see where Firebug shows inherited style information for the :first-child pseudo-class. Gecko renders it properly, but Firebug never seems to report it.</p>
<p>Also of note: I thought I had a simple, ad hoc method of debugging the :first-line pseudo-class, but it failed also.</p>
<p>HTML:</p>
<p><code>&lt;p&gt;&lt;span&gt;Lorem&lt;/span&gt; ipsum dolor sit amet, consectetur adipisicing elit, sed do eiusmod&lt;/p&gt;</code></p>
<p>CSS:</p>
<p><code>p:first-line { font-variant: small-caps; }</code></p>
<p>Both Gecko (Firefox) and Webkit (Safari) render the text in the span properly as small caps, but both Firebug and Webkit&#8217;s inspector report the span&#8217;s font-variant property as &#8220;normal&#8221; (inherited). While the :first-line pseudo-class isn&#8217;t represented in the DOM, the span is, and its style is not being reported properly.</p>
]]></content:encoded>
	</item>
	<item>
		<title>By: Tab Atkins</title>
		<link>http://meyerweb.com/eric/thoughts/2009/11/03/pseudo-phantoms/#comment-482497</link>
		<dc:creator>Tab Atkins</dc:creator>
		<pubDate>Thu, 05 Nov 2009 01:04:05 +0000</pubDate>
		<guid isPermaLink="false">http://meyerweb.com/eric/thoughts/?p=1180#comment-482497</guid>
		<description>@Tiff Fehr: That last hack may fail in a majorly bad way relatively soon, when browsers start supporting content-replacement via the content: property on normal elements.  If I were you I&#039;d stop doing that *right now*, lest you forget and suddenly people start complaining about odd debugging messages showing up on your pages.</description>
		<content:encoded><![CDATA[<p>@Tiff Fehr: That last hack may fail in a majorly bad way relatively soon, when browsers start supporting content-replacement via the content: property on normal elements.  If I were you I&#8217;d stop doing that *right now*, lest you forget and suddenly people start complaining about odd debugging messages showing up on your pages.</p>
]]></content:encoded>
	</item>
	<item>
		<title>By: Norman</title>
		<link>http://meyerweb.com/eric/thoughts/2009/11/03/pseudo-phantoms/#comment-482488</link>
		<dc:creator>Norman</dc:creator>
		<pubDate>Wed, 04 Nov 2009 22:58:16 +0000</pubDate>
		<guid isPermaLink="false">http://meyerweb.com/eric/thoughts/?p=1180#comment-482488</guid>
		<description>these &quot;bugs&quot; are known at least in &lt;a href=&quot;http://code.google.com/p/fbug/issues/list?can=2&amp;q=pseudo&amp;colspec=ID+Type+Status+Owner+Test+Summary&amp;cells=tiles&quot; rel=&quot;nofollow&quot;&gt;firebug&lt;/a&gt; .. i guess its just pretty hard to make it work.

if you want to see the :hover pseudo classes for links in firebug, you need to use the inspect tool, hovering over the link and click it.. firebug now shows you the :hover pseudo class.

apart from pseudo classes and elements, each @* expression, like @font-face, @media etc. are also not shown by firebug (don&#039;t know about the other inspectors tho)</description>
		<content:encoded><![CDATA[<p>these &#8220;bugs&#8221; are known at least in <a href="http://code.google.com/p/fbug/issues/list?can=2&amp;q=pseudo&amp;colspec=ID+Type+Status+Owner+Test+Summary&amp;cells=tiles" rel="nofollow">firebug</a> .. i guess its just pretty hard to make it work.</p>
<p>if you want to see the :hover pseudo classes for links in firebug, you need to use the inspect tool, hovering over the link and click it.. firebug now shows you the :hover pseudo class.</p>
<p>apart from pseudo classes and elements, each @* expression, like @font-face, @media etc. are also not shown by firebug (don&#8217;t know about the other inspectors tho)</p>
]]></content:encoded>
	</item>
	<item>
		<title>By: David Lantner</title>
		<link>http://meyerweb.com/eric/thoughts/2009/11/03/pseudo-phantoms/#comment-482474</link>
		<dc:creator>David Lantner</dc:creator>
		<pubDate>Wed, 04 Nov 2009 20:48:31 +0000</pubDate>
		<guid isPermaLink="false">http://meyerweb.com/eric/thoughts/?p=1180#comment-482474</guid>
		<description>This issue has already been reported within the Firebug project at Google Code: &lt;strong&gt;Issue &lt;a href=&quot;http://code.google.com/p/fbug/issues/detail?id=365&quot; rel=&quot;nofollow&quot;&gt;365&lt;/a&gt;: Show :after and :before properties in CSS tab&lt;/strong&gt;

Personally, I find it confusing that the &lt;a href=&quot;http://msdn.microsoft.com/en-us/library/dd565622%28VS.85%29.aspx&quot; rel=&quot;nofollow&quot;&gt;Developer Tools in IE8&lt;/a&gt; shows the styles associated with a DOM node for any medium, &lt;em&gt;even if the medium is not active&lt;/em&gt;, such as print styles. Also, the Developer Tools would be much more useful if it could show dynamically-generated DOM nodes. Still, it&#039;s a great resource and many people (myself included) benefit from it being included in the browser by default as opposed to being an add-on.

The &lt;a href=&quot;http://www.microsoft.com/downloadS/details.aspx?familyid=E59C3964-672D-4511-BB3E-2D5E1DB91038&amp;displaylang=en&quot; rel=&quot;nofollow&quot;&gt;IE Developer Toolbar for IE6 and IE7&lt;/a&gt; is useful, too, and it will show you the styles for supported pseudo-elements and pseudo-classes such as &quot;&lt;code&gt;a:link&lt;/code&gt;&quot; if you select the element in the DOM tree and then go to the View menu, choose &quot;Source&quot; then &quot;DOM (Element + Styles).&quot;</description>
		<content:encoded><![CDATA[<p>This issue has already been reported within the Firebug project at Google Code: <strong>Issue <a href="http://code.google.com/p/fbug/issues/detail?id=365" rel="nofollow">365</a>: Show :after and :before properties in CSS tab</strong></p>
<p>Personally, I find it confusing that the <a href="http://msdn.microsoft.com/en-us/library/dd565622%28VS.85%29.aspx" rel="nofollow">Developer Tools in IE8</a> shows the styles associated with a DOM node for any medium, <em>even if the medium is not active</em>, such as print styles. Also, the Developer Tools would be much more useful if it could show dynamically-generated DOM nodes. Still, it&#8217;s a great resource and many people (myself included) benefit from it being included in the browser by default as opposed to being an add-on.</p>
<p>The <a href="http://www.microsoft.com/downloadS/details.aspx?familyid=E59C3964-672D-4511-BB3E-2D5E1DB91038&amp;displaylang=en" rel="nofollow">IE Developer Toolbar for IE6 and IE7</a> is useful, too, and it will show you the styles for supported pseudo-elements and pseudo-classes such as &#8220;<code>a:link</code>&#8221; if you select the element in the DOM tree and then go to the View menu, choose &#8220;Source&#8221; then &#8220;DOM (Element + Styles).&#8221;</p>
]]></content:encoded>
	</item>
	<item>
		<title>By: Ollie</title>
		<link>http://meyerweb.com/eric/thoughts/2009/11/03/pseudo-phantoms/#comment-482384</link>
		<dc:creator>Ollie</dc:creator>
		<pubDate>Wed, 04 Nov 2009 03:27:37 +0000</pubDate>
		<guid isPermaLink="false">http://meyerweb.com/eric/thoughts/?p=1180#comment-482384</guid>
		<description>Once upon a time in Mozilla, before Firebug (and maybe even Firefox), the venerable DOM Inspector had a nice feature for this. A contextual menu allowed one to explicitly set the pseudo state applied to the focused element. I</description>
		<content:encoded><![CDATA[<p>Once upon a time in Mozilla, before Firebug (and maybe even Firefox), the venerable DOM Inspector had a nice feature for this. A contextual menu allowed one to explicitly set the pseudo state applied to the focused element. I</p>
]]></content:encoded>
	</item>
	<item>
		<title>By: Adrain Anderson</title>
		<link>http://meyerweb.com/eric/thoughts/2009/11/03/pseudo-phantoms/#comment-482355</link>
		<dc:creator>Adrain Anderson</dc:creator>
		<pubDate>Tue, 03 Nov 2009 22:42:13 +0000</pubDate>
		<guid isPermaLink="false">http://meyerweb.com/eric/thoughts/?p=1180#comment-482355</guid>
		<description>Thanks for pointing that out John. I also primarily use &quot;Inspect Element&quot; and had just about forgotten about the CSS tab in the Firebug toolbar. I&#039;m surprised this doesen&#039;t get mentioned more around the web.</description>
		<content:encoded><![CDATA[<p>Thanks for pointing that out John. I also primarily use &#8220;Inspect Element&#8221; and had just about forgotten about the CSS tab in the Firebug toolbar. I&#8217;m surprised this doesen&#8217;t get mentioned more around the web.</p>
]]></content:encoded>
	</item>
	<item>
		<title>By: Kenneth</title>
		<link>http://meyerweb.com/eric/thoughts/2009/11/03/pseudo-phantoms/#comment-482336</link>
		<dc:creator>Kenneth</dc:creator>
		<pubDate>Tue, 03 Nov 2009 21:19:36 +0000</pubDate>
		<guid isPermaLink="false">http://meyerweb.com/eric/thoughts/?p=1180#comment-482336</guid>
		<description>While I definitely see your point and agree that it&#039;s annoying for debugging purposes, I don&#039;t think the tools are in the wrong. You&#039;re inspecting the P element and you see its styles and rules. You&#039;re not expecting the (pseudo and thus not in the &lt;abbr title=&quot;Document Object Model&quot;&gt;DOM&lt;/abbr&gt;) :after element, so you don&#039;t see its rules.

Really, &lt;abbr title=&quot;In My Humble Opinion&quot;&gt;IMHO&lt;/abbr&gt;, they should adapt the DOM engines and debuggers to artificially put the :after elements into the DOM, at least for debugging purposes.</description>
		<content:encoded><![CDATA[<p>While I definitely see your point and agree that it&#8217;s annoying for debugging purposes, I don&#8217;t think the tools are in the wrong. You&#8217;re inspecting the P element and you see its styles and rules. You&#8217;re not expecting the (pseudo and thus not in the <abbr title="Document Object Model">DOM</abbr>) :after element, so you don&#8217;t see its rules.</p>
<p>Really, <abbr title="In My Humble Opinion">IMHO</abbr>, they should adapt the DOM engines and debuggers to artificially put the :after elements into the DOM, at least for debugging purposes.</p>
]]></content:encoded>
	</item>
	<item>
		<title>By: Max Design - standards based web design, development and training &#187; Some links for light reading (3/11/09)</title>
		<link>http://meyerweb.com/eric/thoughts/2009/11/03/pseudo-phantoms/#comment-482331</link>
		<dc:creator>Max Design - standards based web design, development and training &#187; Some links for light reading (3/11/09)</dc:creator>
		<pubDate>Tue, 03 Nov 2009 20:28:14 +0000</pubDate>
		<guid isPermaLink="false">http://meyerweb.com/eric/thoughts/?p=1180#comment-482331</guid>
		<description>[...] Pseudo-Phantoms [...]</description>
		<content:encoded><![CDATA[<p>[...] Pseudo-Phantoms [...]</p>
]]></content:encoded>
	</item>
	<item>
		<title>By: Tiff Fehr</title>
		<link>http://meyerweb.com/eric/thoughts/2009/11/03/pseudo-phantoms/#comment-482328</link>
		<dc:creator>Tiff Fehr</dc:creator>
		<pubDate>Tue, 03 Nov 2009 20:18:55 +0000</pubDate>
		<guid isPermaLink="false">http://meyerweb.com/eric/thoughts/?p=1180#comment-482328</guid>
		<description>I&#039;ve run into web inspector/DOM reporting over-zealousness from a different, likely sacrilegious direction.  My company&#039;s CSS is shared across different teams and skill-sets.  We aim for liberal commenting (later stripped out by hand or caught by our compressor, of course), however we&#039;ve also started to include comments via invalid CSS properties, too, so they show up in Firebug, etc. Example:  &#039;cleanup-note: &quot;background img should move to sprite&quot;;&#039;.  

The challenge is that we&#039;d like those comments to show up in web inspectors where a designer is *investigating* an issue rather than having to go into the code (and our CMS + source control monolith) itself.  

Of course, the browsers + web inspectors strip out invalid properties.  The work-around we&#039;ve used so far is something like &#039;content: &quot;NOTES: ...blah...&quot;;&#039; without a pseudo-class of :before or :after.  Gross but it works.

I&#039;m glad that web inspectors have become so ingrained in web workflow that we&#039;re nitpicking advanced details.  Is our web-inspection sophistication is pushing past the rendered DOM?  Would the ability to provide custom/different validation schemas to web inspectors help?  If so, how does the community take on a bigger, standardizing(?) role in web inspector features?</description>
		<content:encoded><![CDATA[<p>I&#8217;ve run into web inspector/DOM reporting over-zealousness from a different, likely sacrilegious direction.  My company&#8217;s CSS is shared across different teams and skill-sets.  We aim for liberal commenting (later stripped out by hand or caught by our compressor, of course), however we&#8217;ve also started to include comments via invalid CSS properties, too, so they show up in Firebug, etc. Example:  &#8216;cleanup-note: &#8220;background img should move to sprite&#8221;;&#8217;.  </p>
<p>The challenge is that we&#8217;d like those comments to show up in web inspectors where a designer is *investigating* an issue rather than having to go into the code (and our CMS + source control monolith) itself.  </p>
<p>Of course, the browsers + web inspectors strip out invalid properties.  The work-around we&#8217;ve used so far is something like &#8216;content: &#8220;NOTES: &#8230;blah&#8230;&#8221;;&#8217; without a pseudo-class of :before or :after.  Gross but it works.</p>
<p>I&#8217;m glad that web inspectors have become so ingrained in web workflow that we&#8217;re nitpicking advanced details.  Is our web-inspection sophistication is pushing past the rendered DOM?  Would the ability to provide custom/different validation schemas to web inspectors help?  If so, how does the community take on a bigger, standardizing(?) role in web inspector features?</p>
]]></content:encoded>
	</item>
	<item>
		<title>By: John Lascurettes</title>
		<link>http://meyerweb.com/eric/thoughts/2009/11/03/pseudo-phantoms/#comment-482321</link>
		<dc:creator>John Lascurettes</dc:creator>
		<pubDate>Tue, 03 Nov 2009 18:49:54 +0000</pubDate>
		<guid isPermaLink="false">http://meyerweb.com/eric/thoughts/?p=1180#comment-482321</guid>
		<description>The missing pseudo elements are not the fault of Firebug as far as I know, but rather Gecko&#039;s own DOM reporting, for that is what Firebug is tapping into to report back to you. Sounds like a fine issue/improvement to file over at Bugzilla. 

For what it&#039;s worth, I can get firebug to also show me the :hover pseudo class if I first click &quot;inspect&quot; in the Firebug toolbar and then hover over and click the element on which I&#039;m trying to see the CSS cascade and values. Normally, I just right-click an element and use the contextual menu to go to &quot;inspect element&quot; but this method will never get you the :hover values.</description>
		<content:encoded><![CDATA[<p>The missing pseudo elements are not the fault of Firebug as far as I know, but rather Gecko&#8217;s own DOM reporting, for that is what Firebug is tapping into to report back to you. Sounds like a fine issue/improvement to file over at Bugzilla. </p>
<p>For what it&#8217;s worth, I can get firebug to also show me the :hover pseudo class if I first click &#8220;inspect&#8221; in the Firebug toolbar and then hover over and click the element on which I&#8217;m trying to see the CSS cascade and values. Normally, I just right-click an element and use the contextual menu to go to &#8220;inspect element&#8221; but this method will never get you the :hover values.</p>
]]></content:encoded>
	</item>
	<item>
		<title>By: Eric Meyer</title>
		<link>http://meyerweb.com/eric/thoughts/2009/11/03/pseudo-phantoms/#comment-482317</link>
		<dc:creator>Eric Meyer</dc:creator>
		<pubDate>Tue, 03 Nov 2009 18:11:26 +0000</pubDate>
		<guid isPermaLink="false">http://meyerweb.com/eric/thoughts/?p=1180#comment-482317</guid>
		<description>&lt;a href=&quot;http://meyerweb.com/eric/thoughts/2009/11/03/pseudo-phantoms/#comment-482313&quot; rel=&quot;nofollow&quot;&gt;Jeff L&lt;/a&gt;: correct, I mean IE8&#039;s tool.  I didn&#039;t test out the toolbar for IE6 and IE7.  I&#039;ll edit the post to clarify that.  Thanks!</description>
		<content:encoded><![CDATA[<p><a href="http://meyerweb.com/eric/thoughts/2009/11/03/pseudo-phantoms/#comment-482313" rel="nofollow">Jeff L</a>: correct, I mean IE8&#8217;s tool.  I didn&#8217;t test out the toolbar for IE6 and IE7.  I&#8217;ll edit the post to clarify that.  Thanks!</p>
]]></content:encoded>
	</item>
	<item>
		<title>By: Jeff L</title>
		<link>http://meyerweb.com/eric/thoughts/2009/11/03/pseudo-phantoms/#comment-482313</link>
		<dc:creator>Jeff L</dc:creator>
		<pubDate>Tue, 03 Nov 2009 18:00:34 +0000</pubDate>
		<guid isPermaLink="false">http://meyerweb.com/eric/thoughts/?p=1180#comment-482313</guid>
		<description>Thanks for using your status to bring some attention to the issue. I&#039;ll be interested to hear from the various developers behind the tools as well. 

Just to clarify though, you are only seeing the proper behavior in IE8&#039;s built in &quot;Developer Tool&quot; not the &quot;Developer Toolbar&quot; that was available for IE6 and IE7, correct?</description>
		<content:encoded><![CDATA[<p>Thanks for using your status to bring some attention to the issue. I&#8217;ll be interested to hear from the various developers behind the tools as well. </p>
<p>Just to clarify though, you are only seeing the proper behavior in IE8&#8217;s built in &#8220;Developer Tool&#8221; not the &#8220;Developer Toolbar&#8221; that was available for IE6 and IE7, correct?</p>
]]></content:encoded>
	</item>
	<item>
		<title>By: Eddie Welker</title>
		<link>http://meyerweb.com/eric/thoughts/2009/11/03/pseudo-phantoms/#comment-482310</link>
		<dc:creator>Eddie Welker</dc:creator>
		<pubDate>Tue, 03 Nov 2009 17:51:28 +0000</pubDate>
		<guid isPermaLink="false">http://meyerweb.com/eric/thoughts/?p=1180#comment-482310</guid>
		<description>Funny, I&#039;ve needed to debug problems with pseudo-rules before simply knew they wouldn&#039;t show up in firebug, etc, and never gave it a second thought that they weren&#039;t there.  Whereas you realized right away and called them out.

If this ends up getting support added to firebug and others, I tip my cap to you for seeing the forest for the trees.</description>
		<content:encoded><![CDATA[<p>Funny, I&#8217;ve needed to debug problems with pseudo-rules before simply knew they wouldn&#8217;t show up in firebug, etc, and never gave it a second thought that they weren&#8217;t there.  Whereas you realized right away and called them out.</p>
<p>If this ends up getting support added to firebug and others, I tip my cap to you for seeing the forest for the trees.</p>
]]></content:encoded>
	</item>
</channel>
</rss>
<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN"
        "http://www.w3.org/TR/html4/loose.dtd">
<html>
<head profile="http://gmpg.org/xfn/1">
<title>meyerweb.com</title>
<link rel="openid.server" href="http://www.myopenid.com/server">
<link rel="openid.delegate" href="http://emeyer.myopenid.com/">
<meta http-equiv="Content-Type" content="text/html; charset=utf-8"><link rel="shortcut icon" href="/favicon.ico"><link rel="home" href="http://meyerweb.com/" title="Home" ><link rel="stylesheet" href="http://meyerweb.com/ui/meyerweb.css" type="text/css" media="screen, projection"><link rel="stylesheet" href="http://meyerweb.com/ui/theme.css" type="text/css" media="screen, projection" id="themeLink"><link rel="stylesheet" href="http://meyerweb.com/ui/print.css" type="text/css" media="print"><script src="http://meyerweb.com/ui/addresses.js" type="text/javascript"></script><link rel="stylesheet" href="/ui/wordpress.css" type="text/css" media="screen">
<link rel="stylesheet" href="/ui/tfe.css" type="text/css" media="screen">
<link rel="stylesheet" href="/ui/home.css" type="text/css" media="screen">
<link rel="alternate" type="application/rss+xml" title="Thoughts From Eric" href="/eric/thoughts/rss2/full" />
<link rel="alternate" type="application/rss+xml" title="Thoughts From Eric (only technical posts)" href="/eric/thoughts/category/tech/rss2/full" />
<link rel="alternate" type="application/rss+xml" title="Thoughts From Eric (only personal posts)" href="/eric/thoughts/category/personal/rss2/full" />
<link rel="alternate" type="application/rss+xml" title="Distractions" href="/eric/thoughts/recent-links/rss2" />
<link rel="alternate" type="application/rss+xml" title="Excuse of the Day" href="/feeds/excuse/rss20.xml" />
</head>
<body id="www-meyerweb-com" class="hpg">

<div id="sitemast"><h1><a href="/"><span>meyerweb</span>.com</a></h1></div><div id="search"><h4>Exploration</h4><!-- SiteSearch Google --><form method="get" action="http://www.google.com/custom" target="_top"><div><input type="hidden" name="domains" value="meyerweb.com"></input><label for="sbb" style="display: none">Submit search form</label><input type="submit" name="sa" value="Google Search" id="sbb"></input><label for="sbi" style="display: none">Enter your search terms</label><input type="text" name="q" size="31" maxlength="255" value="" id="sbi"></input><p><input type="radio" name="sitesearch" value="meyerweb.com" checked id="ss1"></input><label for="ss1" title="Search meyerweb.com">meyerweb.com</label><input type="radio" name="sitesearch" value="" id="ss0"></input><label for="ss0" title="Search the Web">Web</label></p><input type="hidden" name="client" value="pub-3772084027748653"></input><input type="hidden" name="forid" value="1"></input><input type="hidden" name="ie" value="ISO-8859-1"></input><input type="hidden" name="oe" value="ISO-8859-1"></input><input type="hidden" name="safe" value="active"></input><input type="hidden" name="cof" value="GALT:#008000;GL:1;DIV:#336699;VLC:663399;AH:center;BGC:FFFFFF;LBGC:336699;ALC:0000FF;LC:0000FF;T:000000;GFNT:0000FF;GIMP:0000FF;FORID:1"></input><input type="hidden" name="hl" value="en"></input></div></form><!-- SiteSearch Google --><!-- <form method="get" action="http://www.google.com/custom"><div><input type="submit" name="sa" value="Search"><input type="text" name="q" size="20" maxlength="255" value=""><input type="hidden" name="sitesearch" value="meyerweb.com"></div></form><small><a href="http://www.google.com/search">Powered by Google</a></small> --></div><div id="main"><div class="skipper">Skip to: <a href="#extra">site navigation/presentation</a></div><div class="skipper">Skip to: <a href="#thoughts">Thoughts From Eric</a></div>
<div id="thoughts">


<div class="entry">
<h3><a href="http://meyerweb.com/eric/thoughts/2009/11/03/pseudo-phantoms/" rel="bookmark" title="Permanent Link: Pseudo-Phantoms">Pseudo-Phantoms</a></h3>
<ul class="meta">
<li class="date">Tue 3 Nov 2009</li>
<li class="time">1341</li>
<li class="cat"><a href="http://meyerweb.com/eric/thoughts/category/tech/browsers/" title="View all posts in Browsers" rel="category tag">Browsers</a><br> <a href="http://meyerweb.com/eric/thoughts/category/tech/css/" title="View all posts in CSS" rel="category tag">CSS</a><br> <a href="http://meyerweb.com/eric/thoughts/category/tech/dom/" title="View all posts in DOM" rel="category tag">DOM</a><br> <a href="http://meyerweb.com/eric/thoughts/category/tech/tools/" title="View all posts in Tools" rel="category tag">Tools</a><br> <a href="http://meyerweb.com/eric/thoughts/category/tech/web/" title="View all posts in Web" rel="category tag">Web</a></li>
<li class="cmt"><a href="http://meyerweb.com/eric/thoughts/2009/11/03/pseudo-phantoms/#comments">15 responses</a></li>
<li></li><li></li></ul>

<div class="text">
<p>
In the course of a recent debugging session, I discovered a limitation of web inspectors (Firebug, Dragonfly, Safari&#8217;s Web Inspector, et al.) that I hadn&#8217;t quite grasped before: they don&#8217;t show pseudo-elements and they&#8217;re not so great with pseudo-classes.  There&#8217;s one semi-exception to this rule, which is Internet Explorer 8&#8217;s built-in Developer Tool.  It shows pseudo-elements just fine.
</p>
<p>
Here&#8217;s an example of what I&#8217;m talking about:
</p>

<pre><code>p::after {content: " -\2761-"; font-size: smaller;}
</code></pre>

<p>
Drop that style into any document that has paragraphs.  Load it up in your favorite development browser.  Now inspect a paragraph.  You will not see the generated content in the DOM view, and you won&#8217;t see the pseudo-element rule in the Styles tab (except in IE, where you get the latter, though not the former).
</p>

<a href="http://www.flickr.com/photos/meyerweb/4071955467/"><img src="http://meyerweb.com/pix/2009/firebug-crop.png" class="pic border" alt="" /></a>

<p>
The problem isn&#8217;t that I used an escaped Unicode reference; take that out and you&#8217;ll still see the same results, as on <a href="http://meyerweb.com/eric/css/tests/pseudos-inspector-test.html">the test page I threw together</a>.  It isn&#8217;t the double-colon syntax, either, which all modern browsers handle just fine; and anyway, I can take it back to a single colon and still see the same results.  <code>::first-letter</code>, <code>::first-line</code>, <code>::before</code>, and <code>::after</code> are all basically invisible in most inspectors.
</p>
<p>
This can be a problem when developing, especially in cases such as having a forgotten, runaway <a href="http://www.positioniseverything.net/easyclearing.html">generated-content clearfix</a> making hash of the layout.  No matter how many times you inspect the elements that are behaving strangely, you aren&#8217;t going to see anything in the inspector that tells you why the weirdness is happening.
</p>
<p>
The same is largely true for dynamic pseudo-classes.  If you style all five link states, only two will show up in most inspectors&#8212;either <code>:link</code> or <code>:visited</code>, depending on whether you&#8217;ve visited the link&#8217;s target; and <code>:focus</code>.  (You can sometimes also get <code>:hover</code> in Dragonfly, though I&#8217;ve not been able to do so reliably.  IE8&#8217;s Developer Tool always shows <code>a:link</code> even when the link is visited, and doesn&#8217;t appear to show any other link states.  &#8230;yes, this is getting complicated.)
</p>
<p>
The more static pseudo-classes, like <code>:first-child</code>, do show up pretty well across the board (except in IE, which doesn&#8217;t support all the advanced static pseudo-classes; e.g., <code>:last-child</code>).
</p>

<a href="http://www.flickr.com/photos/meyerweb/4072718108/"><img src="http://meyerweb.com/pix/2009/iedevtool-crop.png" class="pic border" alt="" /></a>

<p>
I can appreciate that inspectors face an interesting challenge here.  Pseudo-elements are just that, and aren&#8217;t part of the actual structure.  And yet Internet Explorer&#8217;s Developer Tool manages to find those rules and display them without any fuss, even if it doesn&#8217;t show generated content in its DOM view.  Some inspectors do better than others with dynamic pseudo-classes, but the fact remains that you basically can&#8217;t see some of them even though they will potentially apply to the inspected link at some point.
</p>
<p>
I&#8217;d be very interested to know what inspector teams encountered in trying to solve this problem, or if they&#8217;ve never tried.  I&#8217;d be <em>especially</em> interested to know why IE shows pseudo-elements when the others don&#8217;t&#8212;is it made simple by their rendering engine&#8217;s internals, or did someone on the Developer Tool team go to the extra effort of special-casing those rules?
</p>
<p>
For me, however, the overriding question is this: what will it take for the various inspectors to behave more like IE&#8217;s does, and show pseudo-element and pseudo-class rules that are associated with the element currently being inspected?  And as a bonus, to get them to show in the DOM view where the pseudo-elements actually live, so to speak?
</p>
<p>
<small>(<strong>Addendum:</strong> when I talk about IE and the Developer Tool in this post, I mean the tool built into IE8.  I did not test the Developer Toolbar that was available for IE6 and IE7.  Thanks to <a href="http://www.bogglethemind.com/">Jeff L</a> for pointing out the need to be clear about that.)</small>
</p></div>

</div>

</div>
<p style="font-size: 90%; text-align: right; margin-top: 0.5em; padding-top: 0;">(If you care, there's even an <a href="/eric/thoughts/page/2/">archive of previous thoughts</a>...)</p>

</div><div id="extra"><div class="panel" id="archipelago"><h4>Identity Archipelago</h4><ul><li><a href="http://flickr.com/photos/meyerweb/" rel="me">Flickr</a></li><li><a href="http://twitter.com/meyerweb/" rel="me">Twitter</a></li><li><a href="http://dopplr.com/traveller/meyerweb">Dopplr</a></li><li><a href="http://www.linkedin.com/in/meyerweb" rel="me">LinkedIn</a></li><li><a href="http://technorati.com/profile/emeyer" rel="me">Technorati</a></li></ul></div><div class="panel" id="pointers"><h4>Projects Elsewhere</h4><ul><li><a href="http://aneventapart.com/">An Event Apart</a></li><li><a href="http://complexspiral.com/">Complex Spiral Consulting</a></li><li><a href="http://www.webassist.com/go/css/emeyer/">CSS Sculptor</a></li><li><a href="http://css-discuss.org/">css-discuss</a></li><li><a href="http://microformats.org/">Microformats</a></li><li><a href="http://s5project.org/">S5</a></li></ul></div><div class="panel" id="tour"><ul><li><a href="http://fray.com/issue3/"><img src="http://fray.com/images/i3c.gif" alt="Fray Contributor (Issue 3: Sex &amp; Death)" /></a></li><!-- <li><a href="http://www.webassist.com/go/css/emeyer/"><img src="/pix/CS_ad_180x109.jpg" alt="CSS Sculptor for Dreamweaver" style="max-width: 100%;" /></a></li> --></ul></div><div class="panel">
<h4>Recently Tweeted</h4>
<p class="more"><a href="http://twitter.com/meyerweb">see more</a></p>
<p>Saw a temporary license plate with expiration date MAR3010 and thought of <a href="http://twitter.com/t">@t</a>. <small>&#8211;tweeted 11 hours, 19 minutes ago</small></p>
</div><div id="sideblog" class="panel">
<h4>Distractions</h4>
<p class="more">
<a href="/eric/thoughts/recent-links/">archive</a>
</p>
<ul>
<li><a href="http://tweetagewasteland.com/2010/03/my-head-is-in-the-cloud/" title="March 18 | &#8220;I sense that my addiction to the realtime stream is only making room for the consumption of a faster stream.&#8221;">My Head is in the Cloud</a> <small>[via <a href="http://daringfireball.net/">John</a>]</small></li>
<li><a href="http://8bitnyc.com/" title="March 17 | All of a sudden I want to establish a mission in Central Park and negotiate with the natives for gold and food.">8-Bit NYC</a></li>
<li><a href="http://www.youtube.com/watch?v=nFicqklGuB0&amp;feature=player_embedded" title="March 12 | Wry comment expressing my appreciation of the creative derivativeness of this video and its uncanny accuracy in mocking common tropes.">Academy Award Winning Movie Trailer</a></li>
<li><a href="http://www.youtube.com/watch?v=414TmP12WAU" title="March 9 | &#8220;Apple juice&#8230; for half price!&#8221;  More like twice PRICELESS.  (Note: If you&#8217;re at work, don your headphones.)">Happy in Paraguay</a> <small>[via <a href="http://unstoppablerobotninja.com/">Ethan</a>]</small></li>
<li><a href="http://www.youtube.com/watch?v=9V5ubAOeOBk&amp;feature=player_embedded" title="February 10 | This is approximately the best thing ever.">U900 -Walk Don&#8217;t Run (Isogabamaware)</a></li>
<li><a href="http://www.456bereastreet.com/archive/201002/sifr_default_css_hides_content_from_at_least_one_screen_reader/?utm_source=feedburner&amp;utm_medium=feed&amp;utm_campaign=Feed%3A 456bereastreet %28456 Berea Street%29" title="February 8 | -9999px comes through again, but I really wish we were beyond that kind of thing.">sIFR default CSS hides content from at least one screen reader</a></li>
<li><a href="http://www.macosxhints.com/article.php?story=20100117064356428" title="February 8 | Storing this for future use.">Take a picture with the iSight camera when a folder is opened</a></li>
<li><a href="http://mingle2.com/blog/view/web-developer-mind" title="February 4 | Mostly valid.  (SEE WHAT I DID THERE?)">The Mind of a Web Developer: An Illustrated Diagram</a></li>
<li><a href="http://www.theonion.com/content/news/science_channel_refuses_to_dumb" title="January 28 | &#8220;Punkin Chunkin, for Christ&#8217;s sake&#8230; What more do you people want?&#8221;">Science Channel Refuses To Dumb Down Science Any Further</a></li>
<li><a href="http://www.mailchimp.com/blog/project-omnivore-declassified/" title="January 27 | Sounds like quite a feat.  But I wonder how we&#8217;d feel if Microsoft or Google announced the same kind of thing on their e-mail services.">MailChimp&#8217;s Project Omnivore: Declassified</a></li>
<li><a href="http://www.politifact.com/truth-o-meter/statements/2010/jan/25/carolyn-maloney/congresswoman-says-democratic-presidents-create-mo/" title="January 26 | &#8220;Obviously, luck matters a lot, but when there is a consistent pattern over more than 60 years, it starts to look like more than just luck.&#8221;">Congresswoman says Democratic presidents create more private-sector jobs</a></li>
<li><a href="http://www.ted.com/talks/taylor_mali_what_teachers_make.html" title="January 25 | Truth.">Taylor Mali: What teachers make</a></li>
<li><a href="http://notebook.johnmartz.com/how-websites-work?c=1" title="January 22 | At last, the truth is out and I can stop pretending:  beatific monkeys are what makes it all go.">How websites work</a></li>
</ul>
</div>
<div class="panel" id="advisory">
<div class="guarded">
<a href="http://blogadvisorysystem.com/"><img src="/pix/bas/guarded.png" alt="Blog Advisory System Alert Level: Guarded"></a>
</div>
</div>

<div class="panel" id="excuse">
<h4>The <a href="/feeds/excuse/">excuse of the day</a> is</h4>
<p>Internet 1 traffic is being routed onto Internet 2</p>
</div>

<div class="panel" id="extras">
<h4>Extras</h4>
<ul>
<li><a href="/feeds/">Feeds</a> &#8226;</li>
<li><a href="/eric/faq.html">FAQ</a> &#8226;</li>
<li><a href="/family.html">Family</a></li>
</ul>
</div>

</div>

<div id="navigate">
<h4>Navigation</h4>
<ul id="navlinks">
<li id="archLink"><a href="/eric/thoughts/">Archives</a></li>
<li id="cssLink"><a href="/eric/css/">CSS</a></li>
<li id="toolsLink"><a href="/eric/tools/">Toolbox</a></li>
<li id="writeLink"><a href="/eric/writing.html">Writing</a></li>
<li id="speakLink"><a href="/eric/talks/">Speaking</a></li>
<li id="otherLink"><a href="/other/">Leftovers</a></li>
<li id="aboutsite"><a href="/ui/about.html">About this site</a></li>
</ul>
</div>

<div id="footer">
<p class="sosumi">All contents of this site, unless otherwise noted, are &copy;1995-2008 <strong>Eric A. and Kathryn S. Meyer</strong>.  All Rights Reserved.</p>
<p>"<a href="/eric/thoughts/">Thoughts From Eric</a>" is powered by the &uuml;bercool <a href="http://wordpress.org/">WordPress</a></p>
</div>
</body>
</html>
