マージン・ボーダー・パディング・コンテンツのサイズをリアルタイムで調整。Chrome DevToolsと同じ色分けで図が即座に更新され、コピー可能なCSSも自動生成されます。
設定
<!-- Presets -->
<div>
<div class="bm-section-header">
<span class="bm-section-label" style="background:#e8eaff;color:#3a3a6e;">プリセット</span>
</div>
<div class="bm-presets">
<button class="bm-preset-btn active" onclick="bmApplyPreset('card',this)">カード</button>
<button class="bm-preset-btn" onclick="bmApplyPreset('button',this)">ボタン</button>
<button class="bm-preset-btn" onclick="bmApplyPreset('input',this)">入力欄</button>
<button class="bm-preset-btn" onclick="bmApplyPreset('container',this)">コンテナ</button>
<button class="bm-preset-btn" onclick="bmApplyPreset('reset',this)">リセット</button>
</div>
</div>
<!-- Box-sizing -->
<div>
<div class="bm-section-header">
<span class="bm-section-label" style="background:#e8eaff;color:#3a3a6e;">box-sizing</span>
</div>
<div class="bm-sizing-toggle">
<label><input type="radio" name="bm-sizing" value="content-box" onchange="bmUpdate()"> content-box</label>
<label><input type="radio" name="bm-sizing" value="border-box" onchange="bmUpdate()" checked> border-box</label>
</div>
</div>
<!-- Content -->
<div>
<div class="bm-section-header">
<span class="bm-section-label bm-label-content">コンテンツ</span>
</div>
<div class="bm-four-grid">
<label>幅 (width)<input type="number" id="bm-cw" value="200" min="20" max="800" oninput="bmUpdate()"></label>
<label>高さ (height)<input type="number" id="bm-ch" value="100" min="20" max="800" oninput="bmUpdate()"></label>
</div>
</div>
<!-- Padding -->
<div>
<div class="bm-section-header">
<span class="bm-section-label bm-label-padding">パディング</span>
<label class="bm-link-toggle"><input type="checkbox" id="bm-link-padding" checked onchange="bmLinkChanged('padding')"> 全辺連動</label>
</div>
<div class="bm-four-grid">
<label>上<input type="number" id="bm-pt" value="16" min="0" max="200" oninput="bmSideInput('padding','t')"></label>
<label>右<input type="number" id="bm-pr" value="16" min="0" max="200" oninput="bmSideInput('padding','r')"></label>
<label>下<input type="number" id="bm-pb" value="16" min="0" max="200" oninput="bmSideInput('padding','b')"></label>
<label>左<input type="number" id="bm-pl" value="16" min="0" max="200" oninput="bmSideInput('padding','l')"></label>
</div>
</div>
<!-- Border -->
<div>
<div class="bm-section-header">
<span class="bm-section-label bm-label-border">ボーダー</span>
<label class="bm-link-toggle"><input type="checkbox" id="bm-link-border" checked onchange="bmLinkChanged('border')"> 全辺連動</label>
</div>
<div class="bm-four-grid">
<label>上<input type="number" id="bm-bt" value="1" min="0" max="50" oninput="bmSideInput('border','t')"></label>
<label>右<input type="number" id="bm-br" value="1" min="0" max="50" oninput="bmSideInput('border','r')"></label>
<label>下<input type="number" id="bm-bb" value="1" min="0" max="50" oninput="bmSideInput('border','b')"></label>
<label>左<input type="number" id="bm-bl" value="1" min="0" max="50" oninput="bmSideInput('border','l')"></label>
</div>
<div class="bm-border-style-row">
<label>ボーダースタイル</label>
<select id="bm-bstyle" onchange="bmUpdate()">
<option value="solid" selected>solid</option>
<option value="dashed">dashed</option>
<option value="dotted">dotted</option>
<option value="double">double</option>
<option value="groove">groove</option>
<option value="none">none</option>
</select>
</div>
</div>
<!-- Margin -->
<div>
<div class="bm-section-header">
<span class="bm-section-label bm-label-margin">マージン</span>
<label class="bm-link-toggle"><input type="checkbox" id="bm-link-margin" checked onchange="bmLinkChanged('margin')"> 全辺連動</label>
</div>
<div class="bm-four-grid">
<label>上<input type="number" id="bm-mt" value="16" min="0" max="200" oninput="bmSideInput('margin','t')"></label>
<label>右<input type="number" id="bm-mr" value="16" min="0" max="200" oninput="bmSideInput('margin','r')"></label>
<label>下<input type="number" id="bm-mb" value="16" min="0" max="200" oninput="bmSideInput('margin','b')"></label>
<label>左<input type="number" id="bm-ml" value="16" min="0" max="200" oninput="bmSideInput('margin','l')"></label>
</div>
</div>
ボックスモデル図
margin
border
padding
200 × 100
content
<!-- Computed size -->
<div class="bm-totals">
<div class="bm-total-box">
<div class="bm-total-val" id="bm-total-w">—</div>
<div class="bm-total-lbl">合計幅(px)</div>
</div>
<div class="bm-total-box">
<div class="bm-total-val" id="bm-total-h">—</div>
<div class="bm-total-lbl">合計高さ(px)</div>
</div>
</div>
生成CSS
フリーランス・個人事業主の会計をかんたんに
freee会計なら請求書・経費・確定申告をまるごとクラウド管理。面倒な帳簿付けから解放されます。
使い方
- プリセットを選ぶ — カード・ボタン・入力欄・コンテナから典型的な値を一発ロード。
- 各値を調整 — マージン・ボーダー・パディング・コンテンツの上下左右を個別に設定。「全辺連動」チェックで4辺を一括変更。
- box-sizingを切り替え —
content-boxとborder-boxで合計サイズがどう変わるか確認。 - 図を読む — 色分けはChrome DevToolsと同じ:オレンジ=マージン、黄=ボーダー、緑=パディング、青=コンテンツ。
- CSSをコピー — 「CSSをコピー」を押してスタイルシートに貼り付けるだけ。
CSSボックスモデルとは
すべてのHTML要素は4層の矩形で構成されています。
| 層 | 色 | 説明 |
|---|---|---|
| コンテンツ | 青 | テキストや子要素が配置される領域。width / height で指定。 |
| パディング | 緑 | コンテンツとボーダーの間の余白。背景色がここまで適用される。 |
| ボーダー | 黄 | 要素の境界線。太さ・スタイル・色を指定できる。 |
| マージン | オレンジ | ボーダー外側の余白。要素間の間隔を作る。背景色は適用されない。 |
content-box と border-box の違い
content-box(CSS デフォルト)では width はコンテンツ領域のみ。パディングとボーダーはその外側に加算されます。
border-box では width にパディングとボーダーが含まれます。レイアウト計算が直感的になるため、現代のプロジェクトではほぼ必須です。
/* グローバル推奨設定 */
*, *::before, *::after {
box-sizing: border-box;
}
マージン ショートハンド早見表
| 記法 | 意味 |
|---|---|
margin: 16px | 4辺すべて 16px |
margin: 8px 16px | 上下 8px、左右 16px |
margin: 8px 16px 24px | 上 8px、左右 16px、下 24px |
margin: 8px 12px 16px 20px | 上 / 右 / 下 / 左 |
関連ツール
- CSSスペーシングジェネレーター — 一貫したスペーシングスケールを生成
- CSSグリッドジェネレーター — グリッドレイアウトをビジュアルで構築
- フレックスボックスジェネレーター — Flexコンテナとアイテムを直感的に設計
※本ページにはアフィリエイト広告(A8.net)が含まれています。ご支援いただくことでツールの無料提供を継続できます。
