max-height

CSSでは、コンテンツの最大となる高さを指定することができます。

本ページでは、max-heightプロパティについて説明します。

max-heightプロパティとは

max-heightプロパティを使うと、コンテンツ領域の最大の高さを指定することができます。コンテンツ領域とは、枠線(境界線)やパディング領域の内側にある、テキストなどを表示する領域です。

max-heightの説明

max-heightの定義は、以下のとおりです。

【max-heightの定義】
length | percentage | none | inherit
初期値 none
適用対象 すべての要素(置換要素でないインラインボックスの要素、displayがtable columns、column groups を除く)
継承 しない

置換要素とは、iframe、video、img要素などを示します。

値の説明

以下は、max-heightで使える値と説明です。

length
数値と単位で指定します。マイナスは、使えません。
percentage
親要素の高さに対するパーセントで指定します。マイナスは、使えません。
none
最大の高さを指定しません。

利用例

max-heightの利用例は、以下のとおりです。

【max-heightの利用例】
.test {
  max-height: 120px;
  overflow: scroll;
}

overflow:scrollは、スクロールバーを表示します。

上記は、以下のように表示されます。

max-heightを利用した時の表示例

高さが120px以下の時は、20pxなど必要な高さだけ確保します。上記のように、文章が長くなって高さが120px以上必要な時でも高さは120pxとなり、スクロールすると見えるようになります。

heightとの違い

親要素の高さが150pxだっととします。子要素のheightで、高さを200pxに指定すると、子要素は親要素からはみ出してしまいます。つまり、heightはpxなどで指定すると高さが固定されます。

heightを使うと子要素がはみ出る例

子要素のmax-heightで、200pxに指定したとします。親要素の高さが150pxだったとしても、20pxなどコンテンツを表示するのに必要な高さになります。これは、max-heighが最大値を示すため、それ以下の高さにもなれるためです。

つまり、max-heightは指定した高さより大きくはなりませんが、小さくはなります。

max-heightを指定した時の計算

max-heightを指定すると、以下で高さが計算されます。

  1. height-widthを指定しない時の高さを、aとします。
  2. aがmax-heightより小さい時は、aが高さになります。(結果1)
  3. aがmax-heightより大きい時は、max-heightの値が高さになります。(結果2)

aは、p要素などでheightを指定していなければ、コンテンツを表示するのに必要な高さになります。heightを指定していれば、その高さになります。

これを踏まえて、次から2つの例を示します。

heightとmax-heightの併用

以下のHTMLがあったとします。

【heightとmax-heightの併用例を示すHTML】
<div class="test1">
<p class="test2">テスト</p>
</div>

CSSは、以下です。

【heightとmax-heightの併用例を示すCSS】
.test1 {
  height: 150px;
  border: solid;
}

.test2 {
  height: 400px;
  max-height: 300px;
  border: solid red;
}

この時、上で説明した計算でaは400pxになります。aがmax-heightより大きいため(結果2)が採用されて、max-heightの値が高さになります。

上記は、以下のように表示されます。

heightとmax-heightの併用例

赤枠(p要素)の高さは、300pxです。

もし、クラスtest2でheightで指定した値が200pxだった場合、(結果1)が採用されてheightの値が高さになります。

また、クラスtest2でheightを指定していない場合、aはコンテンツを表示するのに必要な高さになります。このため、(結果1)が採用されて、コンテンツを表示するのに必要な高さで表示されます(この例では、コンテンツを表示するのに必要な高さが小さいため)。

img要素での利用

以下のHTMLがあったとします。

【親要素をはみ出すimg要素でheightの利用を説明するHTML】
<div class="test1">
<img class="test2" src="image.png" alt="テスト">
</div>

CSSは、以下です。

【親要素をはみ出すimg要素でmax-heightの利用を説明するCSS】
.test1 {
  height: 150px;
  border: solid;
}

.test2 {
  max-height: 300px;
}

img要素で表示する画像は、高さが525pxあるとします。

この時、img要素にはheightが指定されていませんが、上で説明した計算でaは525pxになります。aがmax-heightより大きいため(結果2)が採用されて、max-heightの値が高さになります。

上記は、以下のように表示されます。

img要素での利用例

画像の高さは、300pxです。

img要素でmax-heightを使う場合、大きな画像を親要素に収めるためには、パーセントで指定するなど親要素に収まるように指定する必要があります。これは、iframeやvideo要素でも同じです。

ブラウザのサポート状況

各ブラウザの最新バージョンでのサポート状況は、以下のとおりです。

【パソコン】
項目 IE Ed Fx Ch Sa Op
max-height
【スマートフォン】
項目 Sa An Op Ch Fx Sm
max-height
サポート
制限あり
×
未サポート
不明
IE
Internet Explorer
Ed
Edge
Fx
Firefox
Ch
Chrome
Sa
Safari
Op
Opera
An
Android Browser
Sm
Samsung Internet

※スマートフォンのFirefoxとChromeは、Android版です。

CSSプロパティ一覧」に戻る