2020.10.10

HTML・CSS

CSSのflexbox使用時の注意点

デモページはこちら

CSSのflexbox使用時の注意点をまとめました。flexboxは使い方によってレイアウトに表示崩れが発生するパターンがあります。

flexアイテムにimgタグ等のinline要素が含まれる場合、他のflexアイテムの縦幅が大きいと同じ高さまで引き延ばされてしまいます。これはalign-itemsプロパティの初期値がnormalのため、一番縦幅の大きいflexアイテムに高さを揃えるデフォルトの仕様です。これを解決するには以下の方法があります。

・親要素のflexコンテナのalign-itemsプロパティに初期値のnormal以外(flex-start等)を指定する。
・flexアイテムのinline要素をblock要素で囲む

<p class="flex_title">align-itemsプロパティなし:初期値のnormal</p>
<div class="flex_wrap">
	<p>ダミーテキストダミーテキストダミーテキストダミーテキストダミーテキストダミーテキスト</p>
	<img src="images/logo_bp.gif" alt="Brick Plan" class="logo">
</div>
<p class="flex_title">align-itemsプロパティあり(flex-start)</p>
<div class="flex_wrap flex_start">
	<p>ダミーテキストダミーテキストダミーテキストダミーテキストダミーテキストダミーテキスト</p>
	<img src="images/logo_bp.gif" alt="Brick Plan" class="logo">
</div>
<p class="flex_title">imgタグをdivタグで囲う(align-itemsプロパティなし:初期値のnormal)</p>
<div class="flex_wrap">
	<p>ダミーテキストダミーテキストダミーテキストダミーテキストダミーテキストダミーテキスト</p>
	<div><img src="images/logo_bp.gif" alt="Brick Plan"></div>
</div>
.flex_wrap {
	display: flex;
	justify-content: space-between;
}
.flex_start {
	align-items: flex-start;
}
.flex_wrap p {
	width: 77%;
	max-width: 539px;
	margin: 0 20px 0 0;
	padding: 0;
}
.flex_wrap img.logo {
	width: 23%;
	max-width: 141px;
}
.flex_wrap div {
	width: 23%;
	max-width: 141px;
}

関連記事

2020.10.15

HTML・CSS

マウスオーバー時にCSSのtransitionプロパティを実装する場合の注意点

デモページはこちら マウスオーバー時にCSSのtransitionプロパティを実装する場合の注意点です。以下のhtml構造でテストします。 .photo01 a…

2020.10.08

HTML・CSS

CSSのfilterプロパティの使用例

デモページはこちら CSSのfilterプロパティの使用例をまとめました。filterプロパティはIE11でサポート外ですが、種類が豊富で実装が簡単です。 ■ …

2022.08.28

HTML・CSS

親要素にtransformが設定されている場合のposition: fixed;

通常、position: fixed;でtop: 0;left: 0;の場合、画面の左上が基準位置になります。しかし、親要素(先祖を含む)にtransformが…

2024.09.25

HTML・CSS

marginの相殺について

兄弟要素と親子要素で発生するmarginの相殺について確認します。また相殺が発生しない例外についても確認します。デモページはこちら 共通のCSSは以下になります…

2020.10.15

HTML・CSS

CSS疑似要素のcontentプロパティにjQueryで設定したカスタムデータ属性の値を指定

デモページはこちら CSS疑似要素のcontentプロパティにjQueryで設定したカスタムデータ属性の値を指定します。以下のhtml構造でテストします。デモペ…

上に戻る