height
Updated / Published
height
プロパティは要素の生成するボックスの内容領域の高さを指定します。適用対象は、非置換インライン要素と表の列・列グループ要素(col
要素, colgroup
要素)を除くすべての要素です。つまり、ブロックボックスを形成する要素やインラインブロックボックスを形成する要素が対象となります。
- 値
- 初期値
auto
- 適用対象
- すべての要素(表の列・列グループ要素・非置換インライン要素を除く)
- 継承
- しない
- メディア
- visual
heightプロパティの値
height
プロパティに指定できる値は、それぞれ以下の意味を示します。
- <長さ>
- "
em
", "px
" などの単位識別子を伴う数値で指定(負の値は不正) - <パーセンテージ>
- 包含ブロックの高さを基準とするパーセンテージ(
%
)による割合で指定(負の値は不正) auto
- 内容(コンテンツ)に合わせて自動調整
"auto
" を指定した場合、指定された要素によって解釈が異なります。ブロックボックスを形成する要素に指定した場合、要素の生成するボックスの一番上の行から下の行までが高さとなり、置換インライン要素に指定した場合、img
要素であれば画像そのものサイズの高さになり、その他の applet
要素, input
要素, object
要素, select
要素, textarea
要素の場合は UA が決定する内在寸法が高さとなります。
パーセンテージ値が基準値として参照する包含ブロックとは、祖先要素の中でもっとも近い祖先にあたる親要素のブロックボックスの内容領域のことを指します。たとえば、デフォルトでは一番最初の包含ブロックである初期包含ブロックは html
要素の各辺なので、スクロール分も含めてページ全体が基準になります。この包含ブロックの中で、height
プロパティのパーセンテージ値は高さを基準値として参照します(たとえば、body
要素直下にあるdiv
の高さを画面全体の100%
にしたい場合は、html, body, body>div{ height:100%; }
のように高さを指定する必要があります)。
なお、高さのサイズを固定するのではなく、柔軟に変化できる高さにしたい場合は、高さの最小値・最大値を指定する、min-height
プロパティ・max-height
プロパティを使います。また、内容領域の高さを指定する heigth
プロパティに対して、内容領域の横幅は width
プロパティで指定します。さらにボックスの内容領域をはみ出した場合の表示方法については overflow
プロパティでコントロールすることができます。
height
プロパティが適用できない非置換インライン要素の高さは、line-height
プロパティによる行ボックスの高さがこれに相当し、表の列・列グループ要素の高さはセル要素のボーダー領域までます。
heightプロパティの実装状況
- IE
- ◯:IE6は指定された高さをはみだすことなく勝手にボックスの高さを拡げる振る舞いをします。また、後方互換モードではボーダー領域までを含めて高さとする誤った計測をします。
- Firefox
- ◯
- Opera
- ◯
- Chrome
- ◯
- Safari
- ◯
- iOS
- ◯
- Android
- ◯
サンプル
html, body, #wrapper {
margin : 0 ;
padding : 0 ;
width : 100% ;
height : 100% ;
}
#wrapper {
position : absolute ;
top : 0 ;
right: 0 ;
bottom : 0 ;
left : 0 ;
}
#box {
width : 100px ;
height : 100px ;
background : red ;
position : absolute ;
top : 50% ;
left : 50% ;
margin : -50px 0 0 -50px ;
}
サンプルのように画面全体の上下中央に配置したいなどの時に、100%
を指定して必ずパーセンテージ値を用いる必要があります。パーセンテージ値は包含ブロックの高さを基準とし、一番最初の包含ブロックである初期包含ブロックは html
要素の各辺なので、スクロール分も含めてページ全体が基準になります。そのため、html
要素, body
要素も含めて100%
にする必要があることに注意してください。