Netscape 開発の <blink> (テキストを点滅させる)、Microsoft 開発の <marquee> (テキストを自動スクロールさせる) の2つは HTML4.01 規格外として有名な要素です。 しかし、他にもあるわあるわ、独自開発の要素やプロパティ(CSS の指定項目)が......。 なぜこういうモノを作るのか? 答えは簡単、自社で開発したブラウザにユーザーを慣れさせる(依存させる)為に、です。 ”W3C の仕様に反するから規格外要素を使うべきではない” と、いう理屈ではなく ”企業の利益追求活動に付き合ってやる必要はナイ!” と、言いたいワケです。
冒頭で紹介した <marquee> のような規格外要素は、HTML4.01 の仕様には含まれていません。 また、HTML タグで配置・装飾を行うものは大概、 Deprecated (お勧めできない)の烙印を W3C に押されています。 W3C にできるコトはここまでで、規格外だろうが Deprecated だろうが、相変わらず IE では普通に表示されます。 IE6 の次のバージョンになって規格外などが、ブラウザに反映されないようになれば W3C の思惑通りでしょうが、 そうはならないでしょう。 イリーガルなものをブラウザが読み取らないようにしてしまうと、 シェアの大きい IE のコト、大変な混乱が巻き起こるからです。 ”旧ブラウザでは普通に見られたホームページが、新ブラウザではまともに見られん。最低だ!” と、いう意見が渦巻くコトが容易に想像でき、 MicroSoft がそのような危険を犯すハズがないからです。 IE6 になって W3C 寄りになったコトといえば、HTMLファイル内にて標準準拠の宣言をすると、 レイアウトの取り方が正規の方法に近づくようになる。それくらいです。
規格外であるというコトを百も承知の上でそれらを用いるのは、別に構わないと思います(個人の自由なので)。 しかし、実際にはどれが純正品でどれが改造パーツか見分けがつかないまま混同されているのが現実です。 難しいコトに NN4 で通用しないから IE の独自規格に違いない、というのは早計です。 NN4 のバグによって予期した効果が得られなかったダケかもしれないからです。 ただし、'04年現在で優先的に流通しているブラウザ、IE5以降や Netscape6 においては CSS の動作におけるエラーはかなり少なくなっているらしいので、 エラーによってブラウザ間のレイアウトに誤差が生じる可能性は低いと思われます。
種別 | 具体例 | IE6 | N6.2 | Firefox 0.9.3 |
---|---|---|---|---|
HTML4.01 規格外 | <nobr> | 可 | 可 | 可 |
<marquee> | 可 | 不可 | 可 | |
Deprecated (非推奨) | <center> | 可 | 可 | 可 |
<font> | 可 | 可 | 可 | |
<body bgcolor=""> | 可 | 可 | 可 | |
W3C 準拠 | <q>引用文</q> | 未実装 | 可 | 可 |
CSS 非標準プロパティ | scrollbar-XXX-color: | 可 | 不可 | 不可 |
text-justify: | 可 | 不可 | 不可 | |
W3C 準拠 (CSS) | text-align: justify; | 注.1 | 未実装 | 可 |
content: 及び quotes: | 未実装 | 可 | 可 | |
注.1 text-justify: と併用して使用する |
表を見てもらうと分かるかと思いますが、HTML の要素に関してはそれほど厳密性を問わず、ユルユルなのが現状です。 なんと、<marquee> が Firefox でも作動するくらいなので。 Deprecated 要素となると、ほとんど全てのブラウザで通用すると思います。 これらを考え合わせると、(CCS を使わずに)HTMLタグだけでファイルを構成する場合、 それほど厳密に作らずともブラウザ間における可読性というものは大して変わらないと思います。
また、CSS プロパティに関しては Netscape の独自拡張は無いと思われますが、IE の独自拡張は数多く存在しますし、 ブラウザ間の互換性が極めて低いので注意が必要です。 さらに、未実装というブラウザが追いついていないプロパティ・値も多数あるのでナカナカ難しいものですよ。
前述したとおり、CSS の世界にも相当な数の独自拡張が紛れ込んでいます。 さすが商売上手な MicroSoft 、ぬかりはありません。 CSS の場合プロパティという形態になりますが、次のようなものが IEの独自拡張の一例です。
text-jutify: (ジャスティファイ / 文字の均等割付の指定。 text-align: の justify属性は標準仕様)、 writing-mode: tb-rl (縦書き)、ruby-align: / ruby-position: (ルビの配置指定)、 layout-grid: (グリッド / 方眼紙状のマス目に文字を収める)
background-position-x: / background-position-y: / overflow-x: / overflow-y: / (background-position: と overflow: は標準仕様だが、X軸・Y軸を別個に指定するこれらは IE でしか認識しない)
scrollbar-???-color: (スクロールバーの配色を任意に行う)、ime-mode: (日本語入力システムのオン・オフを自動指定)、 page-break-after: / page-break-before: (印刷時の改ページを制御)、behavior: (スクリプトの外部ファイルを呼び込む)
これらは、IE以外のブラウザでは認識してくれません。 ただし、これらの使用が全てリスキーであるとは思いません。 例えばスクロールバーの配色にしても、もし実行されずにデフォルトの配色のままだったとしても、 閲覧する側に重大な支障があるわけではありません。 このように、予期したとおりの効果が得られなかったとしても特に問題が無いようなものは使ってもいいと思います。 あんまりうるさいコト言うのは、神経質すぎるので...。
ただし、個人的な経験として overflow-x: などは非常にリスクを伴うプロパティです。 overflow-x: と overflow-y: でX軸・Y軸を別個に指定したとしても、IE以外のブラウザでは無視されるので オーバーフロー自体が実行されません。 オーバーフローの指定で誤作動となれば、レイアウトが大きく破綻する可能性は大です。 ですから、非常に恐ろしい。何で、こんなモン作った、コノヤロー! と、思わずにはいられません。
CSS の各種機能に関しては仕様ありき、で、アイデアが出されて W3C で文書化された後に各メーカーが実装を試みる。
と、いう感じです。
position: プロパティの fixed などはスクロールしてもそれに流されない位置固定のボックスを作れるらしいので、
IE でこれが使えたら非常に便利だろうと思いますが、IE6 では実装されていません。
W3C準拠のプロパティに関しては、日本語による一覧などもありますので、興味のある方は見てみるのもよいでしょう。
CSS とはなんだろうか(ページの下の方ではブラウザの歴史についても書かれており、これも必見の内容です)
IE の独自拡張と言えば、大々的にやっているのがフィルタ(filter)です。 これは画像処理ソフトで行うような視覚的効果(半透明、ネガ、ぼかし、影付き等)をブラウザで読み込む際に与えるという趣旨の機能です。 対象となるのは画像、ボックス、文字などであり、なかなかの性能を有しています。
MicroSoft Effect |
フィルタというものは、このようになかなか面白い視覚効果を与えてくれるシステムであり、 何とも言い難い MicroSoft の意気込みが感じられます。 実際、このようなフィルタ処理は頻繁には見かけないのですが (さりげなく上手に使っているから気付かないだけなんでしょうか)、文字にも装飾が利くので使い道はいろいろとありそうです。 上の例は jpg画像ですのでどのブラウザからも見れますが、 実際のところでは IE以外のブラウザを通したら全く効き目はありません。
これらフィルタがどの程度ユーザーの支持を得ているのかは分かりませんが、 ここまで強烈に独自拡張をやられると何でもアリだという気になってきます。 これらは結局、MicroSoft の商魂を具現化したものであり、ユーザーの獲得と維持に向けられた恐るべき執念が滲んでいるかのようです。 これほどの力技を見せ付けられると、やはりただならぬ企業なんだと改めて思い直します。 コンピューター産業の巨人は漫然と構えているだけでは飽き足らず、必死さを感じさせる猛攻を繰り出してきているのです。