Star HTML and the Underscore Hack
layout hacks 2003 partlyCSS aimed at one browser by exploiting a bug in how it parsed the selector.
In 2026: The selectors are still valid CSS so nothing errors, they just match nothing now. IE6 and below invented a phantom element above HTML, so * html matched only there. The underscore and star prefixes worked because IE ignored the leading character.
Where it came from: Widely circulated on css-discuss and A List Apart, roughly 2001 to 2005. Wikipedia ↗
<style>
/* Everyone */
.box { height: 100px; margin-left: 20px; }
/* IE6 and below only: they behave as if something wraps HTML */
* html .box { height: 120px; }
/* IE7 and below only */
*+html .box { height: 110px; }
/* IE6 only, inside a normal rule. Valid browsers drop the property. */
.box { width: 300px; _width: 320px; }
/* IE7 and below only, same trick with a star */
.box { padding: 10px; *padding: 12px; }
</style>
<!-- The 2026 version: nothing. These browsers are gone. -->