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%を指定します。
こちらで完成です!