DIV
ブロックレベル要素
高さと横幅の指定:可能
高さの初期値:0
横幅の初期値:親要素の横幅(100%)
他要素との並び:改行される
余白:勝手につく場合がある
文字の位置:左上*[vertical-alignが効きません]
<div class="test1">test1</div>
<div class="test2">test2</div>
background-color : #ffbbdd;
}
.test2{
background-color : #eeedb9
}
横並びにする
display : inline-block;では、<span>test3</span>と同じになります。
<span>ではできない高さを指定できます。
<div class="test3">test3</div>
<div class="test4">test4</div>
.test3{
background-color : #ffbbdd;
display : inline-block;
width : 100px;
height : 100px;
}
.test4{
background-color : #eeedb9
display : inline-block;
width : 50px;
height : 50px;
}
並べる
親要素の幅に収まらないものは、改行されます。
親要素に高さを指定していると、下方向へ親要素からはみ出します。
下のDemoでは親要素にpadding-bottom : 3remを指定しています。
<div class="test3">1</div>
<div class="test4">2</div>
<div class="test3">3</div>
<div class="test4">4</div>
<div class="test3">5</div>
<div class="test4">6</div>
<div class="test3">7</div>
<div class="test4">8</div>
<div class="test3">9</div>
<div class="test4">10</div>
<div class="test3">11</div>
<div class="test4">12</div>
.test3{
background-color : #ffbbdd;
display : inline-block;
width : 100px;
height : 100px;
}
.test4{
background-color : #eeedb9
display : inline-block;
width : 50px;
height : 50px;
}
中央によせる
親要素に文字の中央寄せがあれば中央になります。
<div class="center">
<div class="test3">test3</div>
<div class="test4">test4</div>
</div>
.center{
text-align : center
}
.test3{
background-color : #ffbbdd;
display : inline-block;
width : 100px;
height : 100px;
}
.test4{
background-color : #eeedb9
display : inline-block;
width : 50px;
height : 50px;
}
vertical-align
右側のdivにverical-alignで下を設定。
左のdivに指定しても変化ありませんが、右に指定するとdiv自体が上、中央、下になります。
<div class="center">
<div class="test5">test5</div>
<div class="test4">test6</div>
</div>
.center{
text-align : center
}
.test5{
background-color : #ffbbdd;
width : 100px;
height : 100px;
display : inline-block;
}
.test6{
background-color : #eeedb9;
width : 50px;
height : 50px;
display : inline-block;
vertical-align : bottom;
}
文字を上下中央
verical-alignを有効にするためには、親要素に「display : table」、子要素に「display : table-cell」にします。
親要素にサイズがある場合は、子要素にサイズを指定しても親要素のサイズが優先されます、子要素のサイズは親要素対してのに割合(%)になるようです。高さは大きい方に合わされます。
<div class="cell1">
<div class="test5">test5</div>
<div class="test4">test6</div>
</div>
.cell1{
margin-left : auto;
margin-right : auto;
display : table;
}
.test8{
background-color : #ffbbdd;
width : 100px;
height : 100px;
display : table-cell;
text-align : center;
vertical-align : middle;
}
.test9{
background-color : #eeedb9;
width : 50px;
height : 50px;
display : table-cell;
text-align : center;
vertical-align : middle;
}
数を増やしてみた
Demo1はPCでは左右に余白が出ます、スマホ等ではDemo2と同じようになります。
あいうえお