通常ブロックボックスの内容はそのボックスの内辺の内側に収まっていますが、ときには内容がボックスからあふれる(overflow)ことがあります。
width
プロパティが指定されたボックスの横幅が、包含ブロックの横幅よりも長くなる場合height
プロパティで指定された高さよりも高くなる場合text-indent
プロパティが負の値や、ブロックボックスの幅よりも大きい値である場合ボックスが内容からあふれるとき、overflow
プロパティによってボックスを切り抜くか切り抜かないか、切り抜くならスクロール機能を提供するかしないかを指定できます。
overflow
プロパティはブロックボックスの内容があふれるときに、あふれた内容を切り抜くかどうかを指定します。このプロパティはその要素の全ての内容に影響しますが、表示域を包含ブロックとする(position:fixed
)子孫要素には影響しません。値は以下のキーワードです。
visible
hidden
scroll
auto
スクロールバーはボーダー領域の内辺とパディング領域の外辺の間に置かれます。
<div>
<p>あふれるべき内容。</p>
</div>
div {
overflow:??;
width: 100px; height: 100px;
border: 1px solid gray }
p {
position: relative;
top: 20px; left: 20px;
width: 100px; height: 100px;
border: 1px solid blue}
以下は、上の例でdiv
要素のoverflow
プロパティに値を設定したときの図です。
visible
hidden
scroll
auto
切り抜き領域(clipping region)
は要素のボーダーボックスのどの部分が表示されるのかを定めます。デフォルトでは要素は切り抜かれませんが、clip
プロパティにより切り抜き領域を明示することができます。日本語にすると分かりづらいのですが、切り抜き領域とは切り抜いて(clipping)表示される領域のことであり、切り抜かれる(clipped)領域ではありません。
auto
rect(<上>, <右>, <下>, <左>)
auto
"を取ります。"auto
"のときは、上・右・下・左の各ボーダー辺までの距離と同じになります。div {
clip: rect(20px, 70px, 80px, 30px);
width: 100px;
height: 100px;
border: 1px solid gray
}
切り抜かれる前が上の図のようだったとすると、切り抜いた後は下の図のようになります。
visibility
プロパティは生成されたボックスが表示されるかしないかを指定します。
visible
hidden
collapse
hidden
"と同じです。display:none
はボックス自体を生成しません。それに対し、visibility:hidden
は生成されたボックスを非表示にします。そのため、非表示にされていてもその他のボックスの配置に影響します。