【CSS】ブロック/インライン/インラインブロックの違いについてで紹介したように、HTMLタグにはデフォルトの表示形式が存在します。
しかし、position: absolute
を適用することで表示の特性が変化します。今回はposition: absolute
を適用した要素の特性について紹介します。
目次
インライン要素同士は横並び、ブロックレベルの要素の場合は縦並び
position: absolute
を適用しても要素の並び方の特性に変化はありません。
インライン要素同士であれば横並びになり、ブロックレベルの要素の場合は縦並びになります。
<span class="inline">inline</span><span class='absolute'>inline absolute</span>
.inline {
background: lightskyblue;
}
.absolute {
background: lightgreen;
position: absolute;
}
See the Pen
inline-absolute-lines by Toshiharu Nishina (@nishina555)
on CodePen.
<div class="block">block</div>
<div class='absolute'>absolute block</div>
.block {
background: lightskyblue;
}
.absolute {
background: lightgreen;
position: absolute;
}
See the Pen
block-absolute-lines by Toshiharu Nishina (@nishina555)
on CodePen.
横幅と高さの指定ができる
position: absolute
を適用させる要素がインライン要素であろうとブロックレベル要素であろうと、ブロックレベル要素の特性と同じく横幅と高さの指定ができます。
<span class='inline'>inline</span>
<span class='absolute'>absolute inline</span>
.inline {
background: lightskyblue;
width: 150px; /* 効かない */
height: 120px; /* 効かない */
}
.absolute {
width: 150px;
height: 150px;
background: lightgreen;
position: absolute;
}
See the Pen
inline-absolute-size by Toshiharu Nishina (@nishina555)
on CodePen.
デフォルトのサイズは要素内のコンテンツが収まる大きさ
position: absolute
を適用させる要素がインライン要素であろうとブロックレベル要素であろうと、インライン要素の特性と同じくデフォルトのサイズは要素内のコンテンツが収まる大きさです。
<div class='block'>block</div>
<div class='absolute'>absolute block</div>
.block {
background: lightskyblue;
}
.absolute {
background: lightgreen;
position: absolute;
}
See the Pen
block-absolute-default-size by Toshiharu Nishina (@nishina555)
on CodePen.
『margin: 0 auto』や『text-align: center』による中央寄せはできない
インライン要素やブロックレベル要素の中央よせのテクニックはposition: absolute
を適用させた要素では効きません。
<div class="parent">
<span class='absolute'>inline absolute</span>
<div>
.parent {
width: 200px;
height: 200px;
text-align: center; /* 子要素自身ではなく、子要素の始点が親要素の中央に配置される */
background: lightskyblue;
}
.absolute {
background: lightgreen;
position: absolute;
}
See the Pen
inline-absolute-text-align by Toshiharu Nishina (@nishina555)
on CodePen.
<div class='block'>block</div>
<div class='absolute'>absolute block</div>
.block {
width: 150px;
margin: 0 auto;
background: lightskyblue;
}
.absolute {
width: 150px;
background: lightgreen;
margin: 0 auto;
position: absolute;
}
See the Pen
block-absolute-margin-auto by Toshiharu Nishina (@nishina555)
on CodePen.
position: absolute
を適用させた要素を中央よせの詳細はabsoluteとrelativeを利用した上下左右の中央よせ方法で紹介しています。
さいごに
Twitter(@nishina555)やってます。フォローしてもらえるとうれしいです!