アカウント名:
パスワード:
デザイン関連の問題はHTMLの文法というより、CSSとJavaScript関連の挙動がほかのブラウザと違いすぎるのが問題。
IE6のバグのまとめhttp://webtech-walker.com/archive/2007/05/21215114.html [webtech-walker.com]
なんかを見ると分かるけど、正しくコーディングしても挙動が変わってしまう。さらに、ほかのブラウザなら数行のコードで指定できるデザインや処理が、IEだとその数倍のコードを書かないと実装できなかったりで、そのためにWeb開発者からは嫌われまくっているというのが現状。
/.Jなら理解されると思うけど、バグっていうのは仕様と異なる動作をすることのはず。
例えば、挙げられてるIE6のバグのまとめにはpositionが書かれているけど、CSS Level 1にはそもそもpositionプロパティなんてない。あくまでIEの独自拡張。それに対して何を勝手にバグと呼びつけてるんだか。(ちなみにIE6はCSS Level 1準拠としかいっていないのでCSS Level 2以降と比較するのは筋違い。)
いや、独自拡張であるなら独自拡張である旨を示すプレフィクスを付けなければなりませんし、仕様外の値や指定は適切に無視する必要があります。これが W3C の仕様通りの挙動。 それを行っていない以上、独自拡張であろうと W3C 仕様から見たらバグです。
ただし、普通は「ソフトウェアの仕様に沿っていない挙動」がバグですので、IE6 の仕様に CSS1 準拠と明記されていない限りバグであるのか仕様であるのかは外からは判断できません。ですから、単に不具合と呼んでおく方が素直でしょうね。
独自拡張である旨を示すプレフィックスを付ける、という仕様自体がCSS1に含まれていませんが。だから「CSS Level 2以降と比較するのは筋違い」って書いたのに、それでもなお比較する人がここにも。
# CSS1を読み違えてたらすみません。
実のところ CSS2 にもベンダー固有実装を示すプレフィックスなどというものは存在しません。 追加されたのは CSS2.1 からであり、これは本来の仕様である CSS1/2 のプロパティー名定義である IDENT から外れる形で記述することで明示する、という形で行われていた独自拡張を追認したものです。 そういう意味では CSS2 ではなく CSS2.1 からですね、というのはともかく。
IE4 (1997) であればともかく、IE6 (2001) は CSS2 (1998) の仕様が既に分かっている状況で作成されているものであって、position が CSS2 に存在することを理解した上で実装しているものです。 ですから、「IE6 は CSS1 準拠のもので position はあくまでも独自実装。CSS2 に存在するものとたまたま被っただけ」と言うのはさすがに無理がありすぎます。
独自拡張であるなら "position" ではない名前にするべきですし、"position" とするなら独自拡張ではない (CSS2 の一部を先行実装したのであって、独自仕様により実装したものではない)、にならないでしょうか。
より多くのコメントがこの議論にあるかもしれませんが、JavaScriptが有効ではない環境を使用している場合、クラシックなコメントシステム(D1)に設定を変更する必要があります。
ハッカーとクラッカーの違い。大してないと思います -- あるアレゲ
本当にIE6の問題なの? (スコア:1, 参考になる)
”壊れていないものはいじるな”とはいうものの、本当のところはどうなんでしょうね。
IE以前の問題として、メモリ関係で隠れた大量の不具合を抱えており、動作環境が変わると、不正な動作を検出されてクラッシュするというケースがありそうです。
デザインが崩れるケースについては、もともと使用しているHTMLに文法上の誤りが多すぎて、IE6の挙動に依存しているというのが実態じゃないかな? きっと、ActiveX関連を無視したとしても、各種Markup Validation Serviceでエラーが列挙されることは、予想するまでもない状態ではなかろうか? 構築当時、動けばいいというレベルでテストをしていたとしたら、十分ありそうな話である。
Re: (スコア:0)
いや、問題は不況だと思う。
#みんな世間が悪いんだ。
Re: (スコア:2, 興味深い)
デザイン関連の問題はHTMLの文法というより、CSSとJavaScript関連の挙動がほかのブラウザと違いすぎるのが問題。
IE6のバグのまとめ
http://webtech-walker.com/archive/2007/05/21215114.html [webtech-walker.com]
なんかを見ると分かるけど、正しくコーディングしても挙動が変わってしまう。さらに、ほかのブラウザなら数行のコードで指定できるデザインや処理が、IEだとその数倍のコードを書かないと実装できなかったりで、そのためにWeb開発者からは嫌われまくっているというのが現状。
Re: (スコア:2, 参考になる)
/.Jなら理解されると思うけど、バグっていうのは仕様と異なる動作をすることのはず。
例えば、挙げられてるIE6のバグのまとめにはpositionが書かれているけど、CSS Level 1にはそもそもpositionプロパティなんてない。あくまでIEの独自拡張。それに対して何を勝手にバグと呼びつけてるんだか。
(ちなみにIE6はCSS Level 1準拠としかいっていないのでCSS Level 2以降と比較するのは筋違い。)
Re: (スコア:2, 興味深い)
いや、独自拡張であるなら独自拡張である旨を示すプレフィクスを付けなければなりませんし、仕様外の値や指定は適切に無視する必要があります。これが W3C の仕様通りの挙動。
それを行っていない以上、独自拡張であろうと W3C 仕様から見たらバグです。
ただし、普通は「ソフトウェアの仕様に沿っていない挙動」がバグですので、IE6 の仕様に CSS1 準拠と明記されていない限りバグであるのか仕様であるのかは外からは判断できません。ですから、単に不具合と呼んでおく方が素直でしょうね。
Re: (スコア:1)
独自拡張である旨を示すプレフィックスを付ける、という仕様自体がCSS1に含まれていませんが。
だから「CSS Level 2以降と比較するのは筋違い」って書いたのに、それでもなお比較する人がここにも。
# CSS1を読み違えてたらすみません。
Re:本当にIE6の問題なの? (スコア:2, 参考になる)
実のところ CSS2 にもベンダー固有実装を示すプレフィックスなどというものは存在しません。
追加されたのは CSS2.1 からであり、これは本来の仕様である CSS1/2 のプロパティー名定義である IDENT から外れる形で記述することで明示する、という形で行われていた独自拡張を追認したものです。
そういう意味では CSS2 ではなく CSS2.1 からですね、というのはともかく。
IE4 (1997) であればともかく、IE6 (2001) は CSS2 (1998) の仕様が既に分かっている状況で作成されているものであって、position が CSS2 に存在することを理解した上で実装しているものです。
ですから、「IE6 は CSS1 準拠のもので position はあくまでも独自実装。CSS2 に存在するものとたまたま被っただけ」と言うのはさすがに無理がありすぎます。
独自拡張であるなら "position" ではない名前にするべきですし、"position" とするなら独自拡張ではない (CSS2 の一部を先行実装したのであって、独自仕様により実装したものではない)、にならないでしょうか。