:before and :after feature detection

Optimized Modernizr version. Created by @laustdeleuran Core method inspired by @westonruter.

by laustdeleuran

HTML

<script src="http://dev.ljd.dk/resources/modernizr-2.0.6-c1.js"></script>
<div id="before-results"></div>
<div id="after-results"></div>
<ul id="credits" style="margin-top:1em; font-size:80%;">
    <li>By <a href="http://ljd.dk">Laust Deleuran</a> - <a href="http://twitter.com/laustdeleuran">@laustdeleuran</a></li>
    <li>Core method inspired by <a href="http://jsfiddle.net/westonruter/eAVp2/">Weston Ruter</a></li>
</ul>

JavaScript

// :before pseudo selector test.
// By @laustdeleuran
// Please see http://reference.sitepoint.com/css/pseudoelement-before for inconsistencies
            Modernizr.testStyles('#modernizr {visibility:hidden;} #modernizr:before{content:"modernizr-before"}', function(elem,rule) {
                Modernizr.addTest('before', elem.offsetHeight > 0);
            });

// :after pseudo selector test.
// By @laustdeleuran
// Please see http://reference.sitepoint.com/css/pseudoelement-after for inconsistencies
            Modernizr.testStyles('#modernizr {visibility:hidden;} #modernizr:after{content:"modernizr-after"}', function(elem,rule) {
                Modernizr.addTest('after', elem.offsetHeight > 0);
            });

// Output result
document.getElementById("before-results").innerHTML = Modernizr.before ? "Yes! I support the :before pseudo element." : "No - so sorry, but I have no clue what the :before pseudo element is.";
document.getElementById("before-results").style.color = Modernizr.before ? "green" : "red";
document.getElementById("after-results").innerHTML = Modernizr.after ? "Yes! I support the :after pseudo element." : "No - so sorry, but I have no clue what the :after pseudo element is.";
document.getElementById("after-results").style.color = Modernizr.after ? "green" : "red";