余白と幅を決める

この場面の困り事と、そのまま使えるコード。全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;
}

見出しの上下の余白が決まらない

上を下の2〜3倍空ける。見出しは次の本文に属するので、前との距離を大きく取る。余白

上を下の2〜3倍空ける。見出しは次の本文に属する。

HTML(見本の骨組み)

<h2>中見出し</h2>
<p>本文</p>

トークンは 出発点のCSS の :root にあります。

コピーする CSS

:root {
  --space-8: 64px;
  --space-3: 12px;
}
h2 { margin-block: var(--space-8) var(--space-3); }
h3 { margin-block: var(--space-6) var(--space-2); }

文章の右に意味のない空白が残る

行長を文字数で決めない。版面をコンテナに与えて、見出しも本文も表も同じ右端に揃える。版面と行長

.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 のどちらを使うか

並びの中の間隔は gap。端の余白を打ち消す記述が要らなくなる。レイアウトの実装

並びの中の間隔は gap。端の打ち消しが要らなくなる。

HTML(見本の骨組み)

<div class="row"><span>A</span><span>B</span><span>C</span></div>

トークンは 出発点のCSS の :root にあります。

コピーする CSS

:root {
  --space-4: 16px;
}
.row { display: flex; gap: var(--space-4); }

余白が意図せず重なる、または消える

上下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 を持ち帰る: 字と余白と幅

この場面で貼れるもの#

答えを読んだら、ここから完成形を持ち帰れます。

この資料は、Webサイトを作るときに引くためのものです。 何のために作ったか。作っているのは AK²Lab。