よく見るトップページとかの横並びレイアウトってどうしたらいいんだろう?
今回はflexを使った横並びレイアウトを紹介するね!
flexプロパティの紹介
それでは実際に、各Flexboxプロパティをサンプルコードとともに説明していきましょう。
display flex
.container {
display: flex; /* 要素をフレックスコンテナにする */
}
flex-direction
.container {
display: flex;
flex-direction: row; /* フレックスアイテムを横方向に配置 */
}
flex-wrap
.container {
display: flex;
flex-wrap: wrap; /* フレックスアイテムを折り返す */
}
justify-content
.container {
display: flex;
justify-content: center; /* フレックスアイテムを中央寄せ */
}
align-items
.container {
display: flex;
align-items: center; /* フレックスアイテムを垂直方向に中央寄せ */
}
align-content
.container {
display: flex;
align-content: space-between; /* 複数行のフレックスアイテムを間隔を空けて配置 */
}
flex-grow、flex-shrink、flex-basis
.item {
flex-grow: 1; /* フレックスアイテムが余白を埋める */
flex-shrink: 0; /* フレックスアイテムが収縮しない */
flex-basis: auto; /* フレックスアイテムの基準サイズを自動調整 */
}
flex
.item {
flex: 1 0 auto; /* flex-grow: 1; flex-shrink: 0; flex-basis: auto; をまとめて指定 */
}
これらのサンプルコードは、よく使われるflexのプロパティです。
これらを参考にして、柔軟なレイアウトを構築するためにFlexboxを活用しましょう。
トップページなどで見るflexの横並びレイアウト
ここまでflexのプロパティを紹介しましたが、実際にトップページでよく見るflex横並び画像+テキストレイアウトを紹介します。
<!DOCTYPE html>
<html lang="ja">
<head>
<meta charset="UTF-8">
<meta name="viewport" content="width=device-width, initial-scale=1.0">
<title>flex Layout Example</title>
<link rel="stylesheet" href="riset.css">
<link rel="stylesheet" href="style.css">
</head>
<body>
<div class="flex">
<div class="flex__left">
<div class="flex__img">
<img src="https://placehold.jp/040005/ffffff/450x250.png" alt="">
</div>
</div>
<div class="flex__right">
<h2 class="flex__tit">タイトルタイトルタイトル</h2>
<p class="flex__txt">
ダミーテキストダミーテキストダミーテキストダミーテキストダミーテキストダミーテキストダミーテキストダミーテキストダミーテキストダミーテキスト
</p>
</div>
</div>
</body>
</html>
.flex {
display: flex;
flex-direction: column;
top: 0;
}
@media screen and (min-width: 767px) {
.flex {
flex-direction: row;
justify-content: space-between;
align-items: center;
}
}
.flex__left,
.flex__right {
width: 100%;
}
@media screen and (min-width: 767px) {
.flex__left,
.flex__right {
width: 50%;
}
}
.flex__right {
width: 100%;
margin-top: 6rem;
margin-left: 0;
}
@media screen and (min-width: 767px) {
.flex__right {
width: 50%;
margin-left: 10rem;
}
}
.flex__img {
width: 100%;
}
.flex__img img {
width: 100%;
max-width: 100%;
}
.flex__tit {
font-size: 1.6rem;
font-weight: 700;
text-align: left;
color: #151e39;
margin-bottom: 3.5rem;
}
@media screen and (min-width: 767px) {
.flex__tit {
font-size: 2rem;
}
}
.flex__txt {
font-size: 1.4rem;
font-weight: 500;
line-height: 1.63;
text-align: left;
color: #151e39;
width: 90%;
}
@media screen and (min-width: 767px) {
.flex__txt {
width: 100%;
font-size: 1.6rem;
line-height: 1.67;
}
}
まとめ
Flexboxを駆使して、トップページのレイアウトを柔軟に構築できます。
ぜひ、試してみてください!