余白と幅を決める
この場面の困り事と、そのまま使えるコード。全11件。 足りなければ、行末のページへ進む。
このページの中だけを絞ります。ページは移りません。
要素の幅と余白が毎回ばらつく
4か8の倍数の階段を作り、その中からしか選ばない。中間の値を作った時点で統一は崩れる。余白
刻みから選んで当てる。中間の値を作った時点で統一は崩れる。
HTML(見本の骨組み)
<div class="stack"> <article class="card">…</article> </div>
トークンは 出発点のCSS の :root にあります。
コピーする CSS
:root {
--space-5: 24px;
--space-4: 16px;
}
.stack { display: flex; flex-direction: column; gap: var(--space-5); }
.card { padding: var(--space-4); }
余白の刻みをどう作るか
4 8 12 16 24 32 48 64 96 128。文字とラベルは4〜8、組の中は8〜16、組と組は24〜48。余白
4〜8の倍数の階段。この中からしか選ばない。
HTML
<!-- :root に刻みを置く -->
CSS
:root {
--space-1: 4px; --space-2: 8px; --space-3: 12px; --space-4: 16px;
--space-5: 24px; --space-6: 32px; --space-7: 48px; --space-8: 64px;
--space-9: 96px; --space-10: 128px;
}見出しの上下の余白が決まらない
文章の右に意味のない空白が残る
行長を文字数で決めない。版面をコンテナに与えて、見出しも本文も表も同じ右端に揃える。版面と行長
.page {
max-inline-size: var(--page);
margin-inline: auto;
padding-inline: var(--gutter);
}広い画面で文章が間延びする
隣に要素を置く。目次でも図版でも、置けば折り返しがその列幅で決まる。版面と行長
.with-aside {
display: grid;
grid-template-columns: minmax(0, 1fr) 16rem;
gap: var(--space-8);
}スマホで横スクロールが出る
固定幅の要素か、はみ出す表か画像。幅375pxで開いて、右端を越えている要素を特定する。レスポンシブ
img, svg, video { max-inline-size: 100%; block-size: auto; }
.table-wrap { overflow-x: auto; }ブレークポイントをどこに置くか
端末名で決めない。中身が崩れる幅で決める。375・768・1280は確認する幅であって分岐点ではない。レスポンシブ
@media (max-width: 48rem) { .with-aside { grid-template-columns: 1fr; } }スマホ用の別デザインを作るべきか
同じHTMLで並びを変えるほうが保守が楽。別々に作ると必ずずれる。レスポンシブ
.cards {
display: grid;
grid-template-columns: repeat(auto-fit, minmax(16rem, 1fr));
gap: var(--space-5);
}gap と margin のどちらを使うか
余白が意図せず重なる、または消える
上下marginの相殺が起きている。gapかpaddingに替えるか、flex/gridの中に入れる。余白
.stack { display: flex; flex-direction: column; gap: var(--space-4); }画面いっぱいに広げるか、中央に寄せるか
読ませるものは版面を決めて寄せる。見せるもの(写真・図)は端まで出してよい。版面と行長
.page { max-inline-size: var(--page); margin-inline: auto; }
.full-bleed { margin-inline: calc(-1 * var(--gutter)); }この場面の値をまとめて決めるなら作業台へ。和文の予約ページに載せて、幅と明暗を替えて確かめてから CSS を持ち帰る: 字と余白と幅
この場面で貼れるもの#
答えを読んだら、ここから完成形を持ち帰れます。