※サポートされているブラウザは現在調査中です。
box-alignプロパティは、ボックス内の子要素の縦方向の揃え位置を指定する際に使用します。
コンテナボックスのサイズが子のサイズより大きい場合にはスペースが余りますが、
box-alignプロパティを使用することで、ボックス内の子要素を揃える位置、および、
スペースが余った場合にはそれらをどう表示するかを指定することができます。
尚、「“縦方向”の揃え位置」と解説しましたが、
正確には、ボックス内の子要素の配置方向が水平(初期値)の場合、垂直方向(縦方向)の揃え位置を指定します。
もし、box-orient:vertical を指定して
ボックス内の子要素の配置方向を垂直にしている場合には、水平方向(横方向)の揃え位置を指定します。
■値
- start
- 標準方向のボックスでは、それぞれの子の上端がボックスの上部に揃えられ、余ったスペースは要素の下に配置される。
逆方向のボックスでは、それぞれの子の下端がボックスの下部に揃えられ、余ったスペースは要素の上に配置される。 - end
- 標準方向のボックスでは、それぞれの子の下端がボックスの下部に揃えられ、余ったスペースは要素の上に配置される。
逆方向のボックスでは、それぞれの子の上端がボックスの上部に揃えられ、余ったスペースは要素の下に配置される。 - center
- 余ったスペースは子の前後に均等に分割される。結果としてボックス内の子要素はセンタリングされる。
- baseline
- box-orientプロパティの値が inline-axis か horizontal の場合、
すべての子はそれらのベースラインが揃うように配置され、余ったスペースは必要に応じて前後に配置される。
子要素がブロックボックスの場合には要素内の最初の行、table要素の場合には最初のセルのベースラインが利用される。
尚、box-orientプロパティの値が block-axis か vertical の場合には、
box-alignプロパティの値に baseline を指定しても center として解釈される。 - stretch(初期値)
- それぞれの子の高さがコンテナブロックの高さに合わせられる。
■初期値・適用対象・値の継承
- 初期値
- stretch
- 適用対象
- ボックス要素
- 値の継承
- しない
■使用例
CSSソースは外部ファイル(sample.css)に記述
div.sample1 {
width:300px; height:100px;
background-color:yellow;
display:-moz-box;
display:-webkit-box;
display:-o-box;
display:-ms-box;
box-align:start;
}
div.sample2 {
width:300px; height:100px;
background-color:yellow;
display:-moz-box;
display:-webkit-box;
display:-o-box;
display:-ms-box;
box-align:end;
}
div.sample3 {
width:300px; height:100px;
background-color:yellow;
display:-moz-box;
display:-webkit-box;
display:-o-box;
display:-ms-box;
box-align:center;
}
div.sample4 {
width:300px; height:100px;
background-color:yellow;
display:-moz-box;
display:-webkit-box;
display:-o-box;
display:-ms-box;
box-align:baseline;
}
div.sample5 {
width:300px; height:100px;
background-color:yellow;
display:-moz-box;
display:-webkit-box;
display:-o-box;
display:-ms-box;
box-align:stretch;
}
div.aka {background-color:red;}
div.midori {background-color:green;}
div.ao {background-color:blue;}
HTMLソース
<html>
<head>
<link rel=”stylesheet” href=”sample.css”
type=”text/css”>
</head>
<body>
<h4>box-align:start; を指定</h4>
<div class=”sample1″>
<div class=”aka”>あいうえお</div>
<div class=”midori”>かきくけこ</div>
<div class=”ao”>さしすせそ</div>
</div>
<h4>box-align:end; を指定</h4>
<div class=”sample2″>
<div class=”aka”>あいうえお</div>
<div class=”midori”>かきくけこ</div>
<div class=”ao”>さしすせそ</div>
</div>
<h4>box-align:center; を指定</h4>
<div class=”sample3″>
<div class=”aka”>あいうえお</div>
<div class=”midori”>かきくけこ</div>
<div class=”ao”>さしすせそ</div>
</div>
<h4>box-align:baseline; を指定</h4>
<div class=”sample4″>
<div class=”aka”>あいうえお</div>
<div class=”midori”>かきくけこ</div>
<div class=”ao”>さしすせそ</div>
</div>
<h4>box-align:stretch; を指定</h4>
<div class=”sample5″>
<div class=”aka”>あいうえお</div>
<div class=”midori”>かきくけこ</div>
<div class=”ao”>さしすせそ</div>
</div>
</body>
</html>
ブラウザ上の表示
box-align:start; を指定
box-align:end; を指定
box-align:center; を指定
box-align:baseline; を指定
box-align:stretch; を指定
■ベンダープレフィックスを付けた場合の使用例
CSSソースは外部ファイル(sample.css)に記述
div.prefix_sample1 {
width:300px; height:100px;
background-color:yellow;
display:-moz-box;
display:-webkit-box;
display:-o-box;
display:-ms-box;
-moz-box-align:start;
-webkit-box-align:start;
-o-box-align:start;
-ms-box-align:start;
}
div.prefix_sample2 {
width:300px; height:100px;
background-color:yellow;
display:-moz-box;
display:-webkit-box;
display:-o-box;
display:-ms-box;
-moz-box-align:end;
-webkit-box-align:end;
-o-box-align:end;
-ms-box-align:end;
}
div.prefix_sample3 {
width:300px; height:100px;
background-color:yellow;
display:-moz-box;
display:-webkit-box;
display:-o-box;
display:-ms-box;
-moz-box-align:center;
-webkit-box-align:center;
-o-box-align:center;
-ms-box-align:center;
}
div.prefix_sample4 {
width:300px; height:100px;
background-color:yellow;
display:-moz-box;
display:-webkit-box;
display:-o-box;
display:-ms-box;
-moz-box-align:baseline;
-webkit-box-align:baseline;
-o-box-align:baseline;
-ms-box-align:baseline;
}
div.prefix_sample5 {
width:300px; height:100px;
background-color:yellow;
display:-moz-box;
display:-webkit-box;
display:-o-box;
display:-ms-box;
-moz-box-align:stretch;
-webkit-box-align:stretch;
-o-box-align:stretch;
-ms-box-align:stretch;
}
div.aka {background-color:red;}
div.midori {background-color:green;}
div.ao {background-color:blue;}
HTMLソース
<html>
<head>
<link rel=”stylesheet” href=”sample.css”
type=”text/css”>
</head>
<body>
<h4>box-align:start; を指定</h4>
<div class=”prefix_sample1″>
<div class=”aka”>あいうえお</div>
<div class=”midori”>かきくけこ</div>
<div class=”ao”>さしすせそ</div>
</div>
<h4>box-align:end; を指定</h4>
<div class=”prefix_sample2″>
<div class=”aka”>あいうえお</div>
<div class=”midori”>かきくけこ</div>
<div class=”ao”>さしすせそ</div>
</div>
<h4>box-align:center; を指定</h4>
<div class=”prefix_sample3″>
<div class=”aka”>あいうえお</div>
<div class=”midori”>かきくけこ</div>
<div class=”ao”>さしすせそ</div>
</div>
<h4>box-align:baseline; を指定</h4>
<div class=”prefix_sample4″>
<div class=”aka”>あいうえお</div>
<div class=”midori”>かきくけこ</div>
<div class=”ao”>さしすせそ</div>
</div>
<h4>box-align:stretch; を指定</h4>
<div class=”prefix_sample5″>
<div class=”aka”>あいうえお</div>
<div class=”midori”>かきくけこ</div>
<div class=”ao”>さしすせそ</div>
</div>
</body>
</html>
ブラウザ上の表示
box-align:start; を指定
box-align:end; を指定
box-align:center; を指定
box-align:baseline; を指定
box-align:stretch; を指定