display:flexでPCの時は横並び、SPの時は縦並びにレイアウトしていきます。
<ul class="flex">
<li>
<h2>タイトル</h2>
<p>テキスト</p>
</li>
<li>
<h2>タイトル</h2>
<p>テキスト</p>
</li>
<li>
<h2>タイトル</h2>
<p>テキスト</p>
</li>
</ul>
HTMLは3つのBOXを作ります。リストタグでレイアウトしていきます。
<style type="text/css">
ul,li{
list-style: none;
margin: 0;
padding: 0;
}
.flex{
display: flex;
justify-content: space-between;
}
.flex li{
width: 30%;
background-color: #ccc;
text-align: center;
}
</style>
それではレイアウトを組んでいきましょう。まずはリストタグから整えていきます。
リストタグの●(点)を取るためにlist-style:none;を指定します。
デフォルトの余白をリセットするため、margin,paddingを0に。
続いてflexboxを指定していきます。
横並びにするには、親要素に指定するので、この場合はulタグに指定します。
boxの間隔を均等に配置したいので、justify-content:space-between;を指定します。
続いてBOXのレイアウトです。幅は余白分を考慮し、30%と指定します。
分かりやすいよう背景色を指定し、テキストは中央に配置します。
/*PC版cssは省略します*/
@media screen and (max-width: 768px){
.flex{
flex-direction: column;
}
.flex li{
width: 100%;
margin-bottom: 20px;
}
}
続いてSP版のレイアウトを作っていきましょう。ブラウザ幅768px以外がSP表示とします。
SP版は縦並びにしたいので、flex-direction:column;を指定します。
display:flex;と一緒に使うのことがポイントです。
次はBOXレイアウトです。liタグの部分になります。PC版で幅を30%にしたので、SP版では画面一杯に表示させたいですね。なので、width:100%を指定します。
こちらで完成です!