widthプロパティ。

CSSに於ける要素の横幅・widthプロパティに関する解説です。

widthプロパティとは。

widthプロパティは、要素の幅です。

widthプロパティの扱い。

widthプロパティの書式。

widthプロパティの書式は、以下のようになります。

width:

値としては、以下のものが取れます。

inherit
一番近い上位要素で指定された値を継承します。
auto

などの他の要因により適宜横幅が決められます(デフォルト)。

パーセンテージ
親要素の幅を100%とするパーセンテージです。
数値
幅を数値で指定します。

値に負値を指定した場合はエラーとなります。

widthプロパティの記述例。

例えば、HTMLの<blockquote>要素において、幅を親要素の80%としたい場合は、

blockquote {
    width: 80%;
    }

と記述します。

widthプロパティに関する注意事項。

widthプロパティの仕様上の注意。

置換インライン要素でのwidthプロパティ。

置換インライン要素の場合、当該オブジェクト固有の横幅があり、この横幅と異なるwidthプロパティ値が与えられた場合、適宜拡大縮小されます。

  • CSS 第二水準まででは、必ず拡大縮小しなければならないと言う意味ではありませんが、実際にはwidthプロパティを実装するユーザエージェントでは必ずと言って良いほど拡大縮小しているため、第二水準第一改訂版ではこの辺りの記述が削除されました。

狭過ぎて要素が入り切らなくなった場合。

仕様上、widthプロパティを当てた結果、当該要素のボックスが狭くなり過ぎて要素が入り切らなくなっても、適宜ボックスを押し拡げるような事はしません。

  • 勝手に押し拡げてしまう実装のユーザエージェントもありますが、不正な実装です。

このため、入り切らなくなった場合の挙動を別途overflowプロパティで指定しておく事をお勧めします。

widthプロパティの実装上の注意。

置換要素に於ける、widthプロパティとheightプロパティの関係。

CSS 第二水準第一改訂版以降では、置換要素での width プロパティと height プロパティについて、片方が auto 値の場合には、もう片方に合わせて適宜拡大縮小される事となっております。

例えば、縦240ピクセルズ、高さ320ピクセルズの画像に対して、width: 100px; プロパティを与え、auto 値でない heightプロパティを与えなかった場合、高さは、横幅に合わせて拡大縮小される事となり、すなわち width プロパティの値 / 本来の幅 で得られる比率が乗じられる事となり、結果高さも133ピクセルズに縮小される事になります。

尚、この扱いは、CSS 第二水準まででは仕様違反でした。

CSS 第二水準では、width プロパティと height プロパティは全くの別物として扱っていたため、仕様に沿うなら、上記の例の場合高さは変更しない、すなわち幅だけが縮小されて表示される可能性がありました。

  • 可能性があったと書いたのは、CSS 第二水準まででは置換要素については、 width プロパティと height プロパティ、言い換えれば、widthプロパティの指定を無視しても良い事となっていたため、width プロパティを無視しても仕様違反ではなかったからです。

しかし、実際のウェブブラウザでは、そのような実装ではなく、現在の第二水準第一改訂版で定められた実装になっていたため、結局この扱いを規格として追認したと言う訳です。

インターネットエクスプローラでの注意事項。

インターネットエクスプローラでは、以下の場合を除いて、widthプロパティで定められた横幅には、パディング(paddingプロパティなどで指定)と枠線(ボーダ)の幅(border-widthプロパティなどで指定)が加算されたものとなります。

  • ウィンドウズ版 6.x以降及びマッキントッシュ版 5.xの標準準拠モード

関連項目。


しらぎくのウェブサイト作成入門サイトマップ