English-only | Jenom česky | Bilingual/Dvojjazyčně

CSS Hack: Podtržítkový hack

Začněme se třemi prostými fakty — jak si jich všiml Petr Písař.

  1. Podtržítko ("_") je povoleno v identifikátorech CSS specifikací CSS2.1
  2. Prohlížeče musí ignorovat neznámé vlastnosti
  3. MSIE 5+ pro Windows ignoruje znak "_" na začátku názvu jakékoli vlastnosti

Tudíž definice CSS, např. _color:red je:

  1. Korektní, protože specifikace CSS 2.1 ji povoluje (ať si softwarové validátory, které znají jen starší verzi CSS 2.0, říkají, co chtějí — v tom, že je to chyba, se mýlí).
  2. Ignorována v každém prohlížeči kromě WinIE
  3. Zpracována jako color:red v WinIE

Tato chyba/vlastnost IE je tak velmi jednoduchým a čistým způsobem, jak v CSS nastavit vlastnosti jen pro WinIE (MacIE tuto chybu/vlastnost nemá). Je třeba snadné opravit chybnou implementaci position:fixed ve WinIE (viz příklad).

#menu {
   position: fixed;
   _position: absolute;
   ...
   }

Stejnou metodu můžeme použít na opravení chybějící podpory min-height ve WinIE (viz příklad 2):

#box {
   min-height: 300px;
   height: auto;
   _height: 300px;
   ...
   }

Pozn.: Zde je využita další chyba WinIE, kdy je hodnota overflow:visible zpracována jako height:auto. Podrobnosti najdete v článku "Hack pro "min-height"".

Testováno ve Windows v MSIE 5, 5.5, 6 a Opeře; na Mac OSX v MSIE 5, Safari a Caminu; a v Mozille a Firefoxu.