Подборка CSS-хаков для различных браузеров
Тонкая настройка CSS в различных браузерах
В Internet есть много статей, посвященных вопросу "to hack or not to hack". Я не хочу обсуждать этот "извечный вопрос", только замечу: что бы там ни говорили противники хаков, хаки весьма и весьма популярны (к счастью или сожалению). Я решил сделать небольшую подборку CSS-хаков для различных браузеров. По сути дела, эта статья является компиляцией очень многих источников.
CSS-хаки для Gecko
Gecko — движок для отображения web-страниц, используемый в браузерах на основе Mozilla: Firefox, Netscape, SeaMonkey, Flock, Songbird, Beonex, K-Meleon, Camino, Galeon, Epiphany, Kazehakase, Skipstone.
- Gecko 0.6: Netscape 6.0;
- Gecko 0.9.4: Netscape 6.2;
- Gecko 0.9.7: Galeon 1.0.2;
- Gecko 1.0.1: Netscape 7.0, Beonex 0.8.2;
- Gecko 1.1: Skipstone 0.8.3;
- Gecko 1.2b: FireFox 0.1;
- Gecko 1.4.1: Epiphany 1.0.4
- Gecko 1.5: K-Meleon 0.8.2;
- Gecko 1.7.5: Netscape 8, Galeon 2.0, Kazehakase 0.2.8;
- Gecko 1.7.13: FireFox 1.0.8;
- Gecko 1.8.0: FireFox 1.5, SeaMonkey 1.0, Flock 0.7, Songbird 0.2, K-Meleon 1.02, Camino 1.0;
- Gecko 1.8.1: FireFox 2.0, Netscape 9, SeaMonkey 1.1, Flock 1.0, K-Meleon 1.1, Camino 1.5.5, Epiphany 2.16, Skipstone 1.0.0;
- Gecko 1.9b: FireFox 3.0b, SeaMonkey 2.0, Songbird 0.3.
Правила, которые понимает только Gecko/Netscape 4
Netscape 4
Данный хак известен как "Caio hack" (в честь Caio Chassot, его обнаружевшего).
Срабатывает в Opera 5 (Win и Mac)
something {}
/**/
Старые Gecko, точные версии неизвестны (работает для OmniWeb 5)
Есть подозрение, что работает только в Gecko 1.2
Старые Gecko, точные версии неизвестны (не работает для OmniWeb 5)
Есть подозрение, что работает только в Gecko 1.2
Не валидирующийся CSS
Gecko 1.0+
Gecko 1.0-1.8 включительно
Данный хак основан на том, что значения атрибутов id
и class
не чувствительны к регистру для этих версий Gecko.
html:not([xmlns*=""]) .class[class="CLASS"] something {}
Gecko 1.8+
Gecko 1.9
Gecko 1.9 чувствителен к регистру для значений атрибутов id
и class
(что согласуется со спецификацией CSS).
html:not([xmlns*=""]) .class:not([class="CLASS"]) something <span class="