HTMLハックの妙
- HTMLハックの必要性: HTMLコードの不具合やブラウザー実装の不十分さのために、期待した結果を得るために洗練されていないコードを書かざるを得ないことがある。こうしたハックは時に創造的で、記憶に値する。
- Netscape Navigator 4.0の
@importハック: Netscapeが対応していないCSSスタイルを遮断できるようにした。NetscapeはCSSではなくJSSSを支持していたが、W3CがCSSを選択したことでNetscape 4のCSS実装は急ごしらえとなり、その結果、後のブラウザーと比べて性能が劣っていた。
- HTMLテーブルをレイアウトに使用: より実験的なレイアウトを可能にした。HTMLテーブルをレイアウトツールとして使うことは、まさにハックの定義そのものであり、メールの世界では今でも使われている。
- CSSスタイルの前にアンダースコアを使う: 特定のスタイルをIE6にだけ適用できるようにした。IEの特殊文字パースの限界を利用したもの。
- AlphaImageLoaderを使ってPNGの透過を提供: IE6が対応していないPNGファイルの透過をレンダリングした。画像をフィルター経由で実行する。
- 条件付きコメント: 特定のIEバージョンでのみ特定のトリックを使えるようにした。HTMLコメント機能をハックしてコードを実行できるように変えた。
- Scalable Inman Flash Replacement (sIFR): Webセーフではないフォントを使えるようにした。テキストをFlash埋め込みに置き換えるJavaScriptハックを使った。
- プリヘッダーテキストのハック: メールで追加テキストが説明行に流れ込むのを防いだ。非標準または珍しい空白文字の並びを使う。
- Google Chrome Frame: IE6をChromeウィンドウに置き換えた。ブラウザープラグインを通じて実装された。
- Webkit専用セレクターハック: CSSコードをWebkitブラウザーにだけ適用した。特定のブラウザーが特定のCSSコードをサポートしているかを検出する。
- レスポンシブデザイン: さまざまな設定、特にタブレットやモバイルで情報を効果的に配置する。ほとんどの場合、メディアクエリを使ってデバイスに応じて情報を配置する。
GN⁺の見解
- 最も重要なのは、HTMLとCSSの標準から外れてでも創造的な解決策を見つけ出す開発者たちの努力である。
- この記事は、Web開発者たちがブラウザーの限界を乗り越え、ユーザー体験を向上させるためにどのように創造的なハックを使ってきたかを示しており、興味深く魅力的である。
- こうしたハックは、Web標準の発展と、より良いWebデザインを目指す開発者たちの絶え間ない努力を反映している。
1件のコメント
Hacker Newsの意見
テーブルをレイアウトに使うのは理解できる。
spacer.gif へのリスペクトがない。
お気に入りのテクニック:
HNは今でもこうしたテクニックの1つを使っている:
アクセシビリティのために見出しを画面外の -10000 の位置に置いて非表示にすることが含まれていない。
HTML5 shiv を CSS より前に導入して、すべてのブラウザの癖を取り除くことへの言及がない。
透明な 1×1 ピクセル gif を使ってテーブルセルを制御していた古き良き時代を思い出す。
初期に広く使われた
、つまり改行しない空白文字エンティティについての補足:現代のWeb開発者が CSS Grid と IE の終焉によって甘やかされているのか、それとも複雑な現代的フレームワークやビルドプロセスを扱わなくてよかった当時のほうが甘やかされていたのか、時々わからなくなる。
レスポンシブデザインが本当にハックなのか疑問: