レスポンシブ対応時、HTML要素をCSSで順番を替える方法【HTML/CSS】
WEB制作におけるメモシリーズ。
HTMLの要素順番をCSSで変える方法を記載していきます。
一言で言うとflexboxを使っています。
主にレスポンシブ対応するときに必要になると思われるので、
レスポンシブ化前提の記載方法になります。
「同じようなHTMLを書き足せばいいとは思うが、
ダサいしコードが長くなる」っていう悩みを持った人は
この記事の方法が向いていると思います。
元の状態
HTML
<div class="contents">
<h2>私の顔面</h2>
<img src="img/my_icon.png" width="300" height="300">
<p>黒髪・赤目黒髪・赤目黒髪・赤目黒髪・赤目</p>
</div>
divの中に「h2・img・p」の3つを要素として突っ込んでるだけ。
上下の2種類の青はヘッダーとフッターを意識しています。
CSS
.contents{
width: 300px;
display: flex;
}
順番変更後
HTML
変更なし
CSS
.contents{
width: 300px;
display: flex;
flex-direction: column;
}
.contents h2{
order: 2;
}
.contents img{
order: 1;
}
.contents p{
order: 3;
}
「flex-direction: column」で
flexboxを縦書きにしたあと、
「order:1~4」で順番を決めているだけ。
これでレスポンシブ対応もできる。
短いですが、これで終わり。
(こういう記事は短い方がいいですよね、互いのために!)