W każdej wersji IE, z wyjątkiem najnowszej (IE9), nie można dodawać styli dla elementów których przeglądarka nie rozpoznaje. Nie można więc używać styli CSS dla wszystkich elementów HTML5. Sposobem na to jest umieszczenie w sekcji poniższego kodu:

<!--[if lt IE 9]>
<script src="http://html5shiv.googlecode.com/svn/trunk/html5.js"><script>
<![endif]-->

Komentarz warunkowy sprawia ża kod html5shiv załaduje się pod warunkiem, że wersja Internet Explorer jest niższa niż 9. Inne przeglądarki, takie jak Firefox i Chrome, ignorują ten kod, oszczędzając w ten sposób przepustowość.

HTML5 Shiv jest oparty na prostym obejściu: nakazuje IE stworzyć elementy za pomocą JavaScriptu (nawet nie muszą być wprowadzone do DOM).

document.createElement('header');

Teraz elementy HTML5 mogą być stylowane normalnie. Dodatkowo, najnowsza wersja HTML5 Shiv integruje IE Print Protector, która naprawia błąd, podczas którego elementy HTML5 znikają w czasie drukowania strony.