【CSS】positionを使って要素の上に要素を被せる方法
今回は、CSSのpositionを使って要素の上に要素を被せる方法を紹介していきます。
目次
【CSS】positionを使って要素の上に要素を被せる方法
完成形はこちらです。
See the Pen
Untitled by webis (@webis-co)
on CodePen.
アイテムの上に数字が記されたボックスを被せていることが分かるでしょう。
それでは早速作っていきます。
※ Google Chrome、Safari、Microsoft edgeで確認しました。
HTML
<div class="box">
<div class="box__item">
<span>1</span>
<h2>タイトルが入ります</h2>
<p>タイトルに関する文章が入ります。タイトルに関する文章が入ります。タイトルに関する文章が入ります。タイトルに関する文章が入ります。</p>
</div>
<div class="box__item">
<span>2</span>
<h2>タイトルが入ります</h2>
<p>タイトルに関する文章が入ります。タイトルに関する文章が入ります。タイトルに関する文章が入ります。タイトルに関する文章が入ります。</p>
</div>
<div class="box__item">
<span>3</span>
<h2>タイトルが入ります</h2>
<p>タイトルに関する文章が入ります。タイトルに関する文章が入ります。タイトルに関する文章が入ります。タイトルに関する文章が入ります。</p>
</div>
</div>
まずは親要素boxの中に、子要素box__itemを3つ用意します。
そして子要素の中にspan、h2、pタグを入れ子にします。
spanタグをCSSで後でbox__itemの上に被せていきます。
CSS
.box {
padding: 50px 0;
max-width: 1000px;
margin: 0 auto;
display: flex;
@include sp {
flex-direction: column;
}
&__item {
position: relative;
flex-basis: calc((100% - 100px)/3);
margin: 0 50px 50px 0;
padding: 20px;
border: 1px solid black;
border-radius: 10px;
@include sp {
margin: 0 30px 50px 30px;
}
&:nth-child(3n) {
margin-right: 0;
@include sp {
margin-right: 30px;
}
}
span {
position: absolute;
top: -20px;
left: -25px;
background-color: burlywood;
padding: 15px;
color: #fff;
}
h2 {
margin-bottom: 20px;
}
p {
line-height: 1.5;
}
}
}
spanをbox__itemの上に被せる方法は、まずspanの親要素であるbox__itemに対して「position: relative;」を指定します。
そして、box__itemの子要素であるspanに対して「position: absolute;」を指定することで絶対配置になりました。
spanに対して装飾を加え、最後にspanに対して「top: -20px; 」と「left: -25px;」を指定して被さるように配置したらOKです。
まとめ
以上が、CSSのpositionを使って要素の上に要素を被せる方法でした。




