IOM Filter
Posted at 2005-03-06T20:27:00+09:00 in Web Design
Opera 7.5とMozilla 1.7.5(Firefox 1.0/1.0.1のコア)でCSSを切り分けたいというケースは、両ブラウザとも実装はかなり優秀なので(←偉そう)まず無いです。が、どうもうまくいかないケースに遭遇してしまったので、IOM Filter(ダサいネーミング)と名づけたInternet Explorer 6とOpera 7.52、Mozilla 1.7.5で違うCSSルールを適用できるような書き方を考えてみました。
コアのコードは以下の通り。
#filterTest {
color:red;
background-color:transparent;
}
body > #filterTest {
color:green;
background-color:transparent;
}
:root #filterTest {
color:blue;
background-color:transparent;
}
Mozilla 1.7.5では全てのルールが有効、Opera 7.52では最初と二番目のルールが有効、Internet Explorer 6では最初のルールだけ有効というわけで、CSSの後出し最強ルールによりそれぞれ違う前景色になるというわけ。この順に書かないとならないことにさえ注意すれば、特にややこしい方法でも無い気がします。
:root擬似クラスはCSS2 Specificationでは定義されていないので、CSS Validatorではエラーでるけど。underscore hackと同じで、どうしても必要というのでない限り鮭避けた方が無難ぽい。
Weblog archives
by Month
- October, 2006 (9)
- September, 2006 (23)
- August, 2006 (31)
- July, 2006 (8)
- October, 2005 (13)
- September, 2005 (24)
- August, 2005 (26)
- July, 2005 (2)
- June, 2005 (2)
- May, 2005 (13)
- April, 2005 (30)
- March, 2005 (33)
- February, 2005 (13)
- January, 2005 (10)
- December, 2004 (28)
- November, 2004 (27)
- October, 2004 (25)
- September, 2004 (38)
- August, 2004 (52)
- July, 2004 (45)
- June, 2004 (41)
- May, 2004 (48)
- April, 2004 (36)
- March, 2004 (51)
- February, 2004 (55)
- January, 2004 (63)
- December, 2003 (46)
- November, 2003 (63)
- October, 2003 (92)
- September, 2003 (61)
- August, 2003 (93)
- July, 2003 (57)
- May, 2003 (5)
- April, 2003 (35)
- March, 2003 (35)
- February, 2003 (37)
- January, 2003 (62)
- December, 2002 (32)
This page was last modified on 2005-03-07T00:49:33+09:00 (in 0.128 secs).