flex と inline-block の使い方

8月に入り日にちが経ちますが、まだまだ暑さが続いてますね。

さらに水分を補給しながら、体調管理には気を付けてください。

8月のイメージといえば、戦争しか連想できません…

広島原爆・長崎原爆・終戦記念日…

日本の行事といえば、夏祭りしかイメージがわかないですね。

有意義な夏の時間を思いきり楽しんでますか?

さてと、話題を取り戻して…

flex と inline-block の使い方

最近は、「display:flex」というCSSを使うレイアウトデザインを見かけますね。

昔はほとんど、「display:inline-block」を使ってセンタリングを設定していました。

ただ、レイアウトに使う内容によって変わっていきます。

親要素の横幅サイズが1200pxで、親要素の中に横を3列で9個のボックスを入れたいとき。

<ul>
	<li>
		<div>
			<img src="./img/photo01.jpg" alt="Photo01" width="100%" />
		</div>

		<h2>写真名</h2>

		<p>写真の説明のテキストが入ります。写真の説明のテキストが入ります。写真の説明のテキストが入ります。写真の説明のテキストが入ります。</p>
	</li>

	<li>
		<div>
			<img src="./img/photo02.jpg" alt="Photo02" width="100%" />
		</div>

		<h2>写真名</h2>

		<p>写真の説明のテキストが入ります。写真の説明のテキストが入ります。写真の説明のテキストが入ります。写真の説明のテキストが入ります。</p>
	</li>

	<li>
		<div>
			<img src="./img/photo03.jpg" alt="Photo03" width="100%" />
		</div>

		<h2>写真名</h2>

		<p>写真の説明のテキストが入ります。写真の説明のテキストが入ります。写真の説明のテキストが入ります。写真の説明のテキストが入ります。</p>
	</li>

	~以下中略~
</ul>

「display:flex」を使うとき

ul {
	display: flex;
	flex-wrap: wrap;
	margin: 0 auto;
	padding: 0;
}

~以下、好みに合わせてコーディング~

ul li {
	border: 1px solid #999;
	margin: 10px;
	padding: 9px;
	width: calc( 100% / 3 - 40px );
}

これで、横幅が1200pxに対して、横に3列を並べることができました。

参考画像

「display:inline-block」を使うとき

ul {
	display: block;
	margin: 0 auto;
	padding: 0;
}

~以下、好みに合わせてコーディング~

ul li {
	border: 1px solid #999;
	display: inline-block;
	margin: 10px;
	padding: 9px;
	width: calc( 100% / 3 - 44px );
}

同じく、display:flexを並べることができましたが、横幅サイズが変わってきてます。

参考画像

結論

どっちもきれいに3列並べることができます。

でも、横幅サイズが変わってしまいます。

しかし、Display: flexを使うときは必ずflex-wrap: wrapを使わないと改行ができません。

以上、2つの使い方をしっかり身についてくださいね。

では、また!

コメントする

メールアドレスが公開されることはありません。 が付いている欄は必須項目です

このサイトはスパムを低減するために Akismet を使っています。コメントデータの処理方法の詳細はこちらをご覧ください