Firefox 3が対応するwidthプロパティの新しい値
Firefox 3が新対応したwidthプロパティは、少々複雑でもある。表や図でわかりやすく解説しよう。
【A】【B】コンテンツが取り得る最大幅と最小幅
HTML/XHTMLタグでマークアップした要素の横幅は、タグ内に記述したコンテンツの分量や構成によって決まる。こうした要素ごとに固有の横幅を「Intrinsic width」と呼ぶ。
Intrinsic widthのうち、「最大幅(Intrinsic preferred width)」はコンテンツに改行を入れずに表示したときの横幅、「最小幅(Intrinsic minimum width)」は改行可能な個所をすべて改行したときの横幅となっている。
なお、「Intrinsic minimum width」を算出する場合、英文では単語ごとに改行が入るが、日本語の文章では文字ごとに改行を入れて算出が行われる。
【C】表示に利用可能な幅
「表示に利用可能な幅」はコンテンツの表示に利用できるエリアの幅のことで、親要素(コンテナブロック)の横幅から水平方向のマージン、ボーダー、パディングの大きさを引いて算出する。計算式で表すと次のようになる。
表示に利用可能な幅=(親要素の幅)−{(margin-left)+(border-left)+(padding-left)+(border-right)+(margin-right)}
表示に利用可能な幅と親要素の幅の関係
先程のサンプルの場合、親要素となるのは<body>で、<div>には水平方向のマージンやボーダー、パディングは指定していない。そのため、表示に利用可能な幅は<body>と同じ横幅、つまり画面の横幅いっぱいとなる。
なお、通常フローのブロック要素の横幅を「auto」と指定した場合、横幅は「表示に利用可能な幅」と同じ計算式で算出される。たとえば、次のソースは上の<div>の横幅を「-moz-available」、下の横幅を「auto」と指定したもので、どちらも同じ横幅で表示されることがわかる。
.sample01 {
width: -moz-available;
}
.sample02 {
width: auto;
}
<div class="sample01">Hello world. こんにちは。</div> <div class="sample02">Hello world. こんにちは。</div>
※ブラウザで表示を確認する
【D】内容にフィットさせた幅
キーワードを「-moz-fit-content」と指定すると、内容にフィットさせた横幅を指定することが可能だ。「内容にフィットさせた幅」はCSSでは「shrink to fit(フィットさせるために縮める)」と呼ばれ、次のような計算式で算出することができる。
内容にフィットさせた幅=max(min(【A】,【C】),【B】)
この式では次のようなステップで横幅を求めている。
- 【A】Intrinsic preferred widthと【C】表示に利用可能な幅とを比較して、値の小さい方を採用
- 1の結果と【B】Intrinsic minimum widthとを比較して、値の大きい方を採用。採用した値が【D】内容にフィットさせた幅となる。
次の式でも同じ結果を求めることが可能だ。
内容にフィットさせた幅=min(max(【B】,【C】),【A】)
なお、positionプロパティを利用して絶対配置を行うと、自動的に内容にフィットした横幅で表示される。
たとえば、次のソースは上の<div>の横幅を「-moz-fit-content」と指定している。下の<div>は横幅を指定していないが、「position:absolute」と指定して絶対配置を行っているため、内容にフィットした横幅で表示される。
.sample01 {
width: -moz-fit-content;
}
.sample02 {
position: absolute;
}
<div class="sample01">Hello world. こんにちは。</div> <div class="sample02">Hello world. こんにちは。</div>
※ブラウザで表示を確認する
- 特集: FirefoxとSafariのCSS徹底検証 (27件)
- 2日前のトップ記事
- 4日前
- 5日前
- 6日前
- 7日前
- ホワイトペーパー
- 読者投票
- 話題のタグ


フォトレポート:世界各国の優秀な技術者がパリに集結--Imagine Cup 2008世界大会
バッチ処理でデータベース活用:4つの課題と5つの解決ポイント
Rubyでどう書く?:RubyでWord文書を作成する
Adobe Acrobat 9--音声やクイズを埋め込んでeラーニング
ウェブ制作者が仲間と幸せに仕事をする方法:仲間との出会い
Excelで多用する雑多な操作を素早く片付けるための10のティップス(前編)
開発者のFirefox 3:非互換のアドオンをインストール
「未来の、その先」をどう提言していくか
ZDNet Japan Green IT
今知るべき仮想化情報
Techno Exchange
DELL連載第4回〜「Microsoft System Center」