CSSレイアウト実用まとめ:flex・表示切替・幅高さ・余白・スクロール
Webページの崩れを直すときは、レイアウト系CSSを個別に覚えるより「横並び」「表示/非表示」「幅と高さ」「余白」「はみ出し」の役割で整理すると扱いやすくなります。
横並びはまずflex
現在のCSSでは、横並びは float より display: flex; を使う方が安全です。2カラムやカード並びにも向いています。
.layout-row {
display: flex;
gap: 1rem;
align-items: flex-start;
}
.layout-row > * {
flex: 1;
}
2カラムをスマホ対応にする
.two-column {
display: grid;
grid-template-columns: 2fr 1fr;
gap: 1.5rem;
}
@media (max-width: 768px) {
.two-column {
grid-template-columns: 1fr;
}
}
表示・非表示・インラインブロック
display: none; は完全に非表示にします。横幅や高さもなくなるため、出し入れするUIでは影響範囲に注意します。
.d-none {
display: none;
}
.d-inline-block {
display: inline-block;
}
幅・高さ・余白の基本
.w-100 {
width: 100%;
}
.h-100 {
height: 100%;
}
.m-0 {
margin: 0;
}
.section-space {
padding: 2rem 1rem;
}
はみ出す内容はスクロールさせる
コード、表、長いログのように横や縦にはみ出す内容は、親要素にスクロールを持たせます。
.scroll-box {
max-height: 320px;
overflow: auto;
border: 1px solid #ddd;
padding: 1rem;
}
floatを使うなら解除までセット
古い記事や既存CSSでは float: left; が残っていることがあります。新規実装ではflex推奨ですが、使う場合は回り込み解除を忘れないようにします。
.float-left {
float: left;
margin-right: 1rem;
}
.clearfix::after {
content: "";
display: block;
clear: both;
}