はじめに
本連載では、「クロスブラウザに対応したデザインテクニック」をテーマに、保守性や互換性に優れたXHTML+CSSの書き方を紹介していきます。
今回は、ページレイアウトする際に、最低限おさえておきたい代表的なCSSプロパティとして、floatプロパティ、および、positionプロパティを中心に解説します。これらプロパティの使い方をマスターすれば、レイアウトの幅が広がるはずです。
対象読者
- XHTMLとCSSの基本を理解している方。
- Web標準に準拠したクロスブラウザなレイアウトデザインに興味のある方。
必要な環境
クロスブラウザなデザインを目指すうえでターゲットとする視覚系ブラウザを一通りご用意ください。本稿では、Web標準を比較的よくサポートしているFirefox、およびユーザー数が多く表示上の問題の多いWindows Internet Explorer 6を中心に解説していますが、できるだけ多くの種類/バージョンのブラウザで表示確認をするのが望ましいでしょう。
フロートで楽々レイアウト(float、clearプロパティ)
要素のボックスを左右に移動させることを「フロート」と言います。フロートの方向を指定するには、floatプロパティを使用しますが、このプロパティの使い方を覚えれば、ページレイアウトの際にとても便利です。
例えば、画像を左や右に配置し、テキストを回り込ませるといった利用頻度の多いレイアウトも、floatプロパティの代表的な使い方です。また、ナビゲーション部分を左サイドバーに、メインのコンテンツを右側に、というような段組レイアウト(マルチカラムレイアウト)も、floatプロパティを利用して、簡単に実現することができます。
floatプロパティ
あるボックスをフロートさせるには、floatプロパティを使用し、「left」や「right」などの値でフロートさせる方向を指定します。
値 | 説明 |
none | 初期値。その要素のボックスをフロートしない。 |
left | 指定した要素のボックスを左側にフロートする。後に続く内容は、その右側に回り込む。 |
right | 指定した要素のボックスを右側にフロートする。後に続く内容は、その左側に回り込む。 |
注意点として、floatプロパティを適用する要素には、幅が指定されていなければならないという決まりがあります。floatプロパティを利用する際は、widthプロパティで幅も一緒に指定しておく、と覚えておくと良いでしょう。ただし、幅の指定方法として、img要素やobject要素ではwidth属性(あるいはその画像やそのオブジェクト自体の幅)、input要素やselect要素ではsize属性、textarea要素ではcols属性の値を利用することもできます。これらの要素のように内在的な幅を備えていない要素の場合には、widthプロパティによる幅指定が必須ということになります。
次の例では、floatプロパティを利用して画像を右に配置し、テキストを回り込ませています。
<p> <img src="sample.gif" alt="サンプル" /> サンプル画像は、「<strong>float:right</strong>」に指定されています。このテキストは、サンプル画像の後に続く内容です。 </p>
img { width: 200px; height: 200px; float: right; }