CSSレイアウトテクニック"偽装絶対指定" - A List Apart
2008/06/24
![]() |
A List Apart - Faux Absolute Positioning |
CSSでポジションを指定する方法は大きくわけてfloatを使う方法と絶対位置で指定する2つの方法がある。多くのサイトではヘッダとフッタを伴うカラムレイアウトを採用していることが多い。絶対位置指定では縦方向にコンテンツが成長するタイプのレイアウトでフッタの位置を指定できないという問題がある。このためfloatレイアウトを使うわけだが、こちらでは予期しないコンテンツの内容変更によって予定していたポジションからずれてしまうことがある。とくにIEではwidthの挙動に問題があるため制御するのがきわめて難しいという状況だ。
Eric Sol氏はこうした現状に対して新しい指定手法を考案したとし"Faux Absolute Positioning"としてA List Apartにおいて紹介している。同氏はより自由にドラッグ&ドロップでフォームを作成できるWebアプリケーションを開発する必要があり、同じくA List Apartで紹介されているIn Search of the Holy Grailの手法を使ったり絶対位置の手法を使ってみたものの、どちらも満足する結果は得られなかったとしている。
最終的に同氏はposition: relative、left: 100%、マイナス値のmargin-left指定を使って固定位置から左部オフセットを計算する方法を手法として採用したとしている。実際にどのように使うのかはFaux Absolute Positioningに掲載されているサンプルを見るのがわかりやすい。描画の対象エリアとなるcanvas、ベースラインとなるline、コンテンツを納めるitem、実際にコンテンツが入るitem1といったようにdiv要素を用意し、それぞれをCSSで位置指定する。item1でのmargin-left指定がマイナス値となる。
HTML 4.01/CSS 2.1に準拠した記述になっているし、margin-leftのマイナス値指定は多くのブラウザが実装している。さらにこの方法はIE6の再描画バグを回避するほかパディングを容易にし、しかもposition: overflowも使えるようになる。さらに右をベースとして指定しているため、コンテンツが幅を越えてしまった場合でも右サイドに回り込んでそれほど邪魔にならないという特徴もある。至れり尽くせりというわけだ。
"Faux Absolute Positioning"はグリッドベースデザインをベースに考案されているため、自由な幅を持つ2カラムレイアウトには適用しない方がいいとされている。またこのテクニックは最近のブラウザやWindowsのIE5.5でも動作するが、MacOSでのIE5では正しく動作しない。すべての適用できる手法ではないが、コンテンツが縦に成長するタイプやグリッドベースのレイアウトでは便利に扱える方法だ。Webデザイナはひとつの手法として同方法を検討してみるとよさそうだ。
関連記事
- サインアップフォームは滅びるべき? Gradual Engagementのススメ[2008/3/27]
- IE8のレンダリング指定、標準準拠へと方針転換はあるか[2008/2/28]
- CSS擬似クラスを使うべき理由[2008/2/6]
- IE8で標準規約レンダリングを指定する方法[2008/1/23]
- Webデザイナ向けHTML5プレビュー、"A Preview of HTML 5"登場[2007/12/4]
- Webデザイナ向けHTML5プレビュー、"A Preview of HTML 5"登場[2007/12/4]
- 世界のWebデザイナの実態公開! 学歴、給料は?[2007/10/19]
- The Web Design Survey 2007はじまる - Webデザイン作業の実態に迫れ[2007/4/26]
関連サイト
ヘッドライン
- Active Directory誕生10周年記念セミナーが2月27日に開催[12:26 2/10]システム管理
- NEC、サイオスら、自動バックアップバック「TWIN NAS 2TB パック」発表[11:45 2/10]システム管理
- グレープシティ、"Excel機能"を提供する.NETコンポーネントの新版発表[11:22 2/10]プログラミング
- トレンドマイクロ、USBメモリ型ウイルス検索製品「Portable Security」発表[10:42 2/10]セキュリティ
- 【コラム】FileMaker×PHPで作る、簡単・便利なWebアプリ 第49回 結果セットの取扱いに特化したクラス、FileMaker_ResultSet(2)[10:18 2/10]プログラミング
- CSS/HTMLリファレンスマニュアル、最新ブラウザ互換情報[09:00 2/10]JavaScript / CSS / HTML
- 【レビュー】BOOK REVIEW - 現場に振り回されるだけのSE人生がイヤならチカラをつけよう[09:00 2/10]SE力
- 【レポート】暗号2010年問題に向け「いつまでに何をすべきか」 - ベリサインが説明[08:00 2/10]セキュリティ
- ルネサス、RXファミリ第3弾としてモータ制御向け「RX62T」を製品化[07:00 2/10]エレクトロニクス
- Rambus、次世代携帯機器向けメモリ「モバイルXDR」を発表[21:16 2/9]エレクトロニクス







