marginとpaddingを使いこなして、思い通りのレイアウトを実現しよう!

2024-04-02

CSSにおけるmarginとpaddingの違い

■ margin

  • 要素の外側に余白を設定します。
  • 他の要素と要素の間隔を調整するために使用されます。
  • 要素の背景色やボーダーの外側に適用されます。
  • 複数の要素が隣接している場合、マージン同士が重なり合うと、その分だけ余白が広くなります。

■ padding

  • 複数の要素が隣接している場合、padding同士は重なり合わず、それぞれ独立して設定されます。

■ まとめ

項目marginpadding
適用場所要素の外側要素の内側
用途要素間の距離調整内容と枠線の距離調整
適用範囲背景色・ボーダーの外側背景色・ボーダーの内側
重なり重なり合う重なり合わない

■ 例

以下の例では、div要素にmarginpaddingを設定しています。

div {
  margin: 10px;
  padding: 20px;
}

この場合、div要素は他の要素から10px離れ、内容と枠線からは20px離れます。

■ 使い分け

  • 要素間の距離を調整したい場合はmarginを使用します。



<!DOCTYPE html>
<html lang="ja">
<head>
  <meta charset="UTF-8">
  <meta name="viewport" content="width=device-width, initial-scale=1.0">
  <title>marginとpaddingのサンプル</title>
  <style>
    body {
      font-family: sans-serif;
    }
    .container {
      width: 300px;
      margin: 10px auto;
      border: 1px solid #ccc;
      padding: 20px;
    }
    .text {
      margin: 10px;
      padding: 5px;
      border: 1px solid #ddd;
    }
  </style>
</head>
<body>
  <div class="container">
    <h2>marginとpaddingのサンプル</h2>
    <p class="text">
      この段落は`margin`と`padding`を使用して調整しています。
    </p>
  </div>
</body>
</html>

このコードを実行すると、以下のようになります。

解説

  • container要素にはmarginpaddingを設定しています。
    • margin: 10px auto;により、container要素は上下左右に10pxの余白が設定され、画面中央に配置されます。
    • padding: 20px;により、container要素の内容と枠線の間には20pxの余白が設定されます。

このサンプルコードを参考に、marginpaddingを使い分けて、レイアウトを調整してみてください。




marginpaddingは、それぞれ4方向(top、right、bottom、left)の余白を個別に設定することができます。

/* 上下の余白を20px、左右の余白を10pxに設定 */
margin: 20px 10px;

/* 上の余白を30px、他の3方向の余白を10pxに設定 */
padding: 30px 10px;

ショートハンドプロパティ

以下のショートハンドプロパティを使用して、方向をまとめて設定することができます。

  • margin-top: 上の余白
/* 上下の余白を20px、左右の余白を10pxに設定 */
margin: 20px 10px;

/* 上下の余白を20px、左右の余白を10pxに設定 */
margin-top: 20px;
margin-right: 10px;
margin-bottom: 20px;
margin-left: 10px;

calc()関数を使用して、余白を動的に計算することができます。

/* 要素の幅の10%を左右の余白に設定 */
margin: 0 calc(10% * var(--width));

/* 要素の高さの2倍を上下の余白に設定 */
padding: calc(2 * var(--height)) 0;

CSS変数を使用して、余白の値を繰り返し利用することができます。

:root {
  --margin: 10px;
  --padding: 20px;
}

.container {
  margin: var(--margin);
  padding: var(--padding);
}

.text {
  margin: var(--margin);
  padding: var(--padding) / 2;
}

これらの方法を組み合わせることで、より柔軟にmarginとpaddingを設定することができます。


css padding margin


Webページを立体的に演出:HTML、CSS、HTMLメールで3D要素を使いこなす

HTML、CSS、HTMLメールにおける3D要素について、分かりやすく解説します。HTMLと3DHTMLは、Webページの構造と内容を定義する言語です。HTML単独で3D要素を記述することはできません。しかし、JavaScriptやWebGLなどの技術と組み合わせることで、3Dグラフィックやアニメーションを表現することができます。...


HTML・CSS初心者でもわかる!nth-child擬似クラスの使い方

特定の子要素を取得するには、様々な方法があります。以下に、代表的な方法と、それぞれの特徴、注意点、そして具体的なコード例をご紹介します。最もシンプルな方法は、子要素のタグ名を使用する方法です。例えば、div要素の子要素であるすべてのp要素を取得するには、以下のセレクタを使用します。...


AngularJSでngClass、ngIf、カスタムディレクティブを使用してCSSスタイルを動的に設定

AngularJSでCSSスタイルを条件的に適用するには、主に以下の3つの方法があります。ngClassディレクティブは、要素にクラスを動的に追加および削除することで、スタイルを条件的に適用する最も一般的な方法です。例:上記の例では、isSpecial プロパティが true の場合、special クラスが要素に追加されます。このクラスはCSSで定義されており、要素を太字にします。...


【Webデザイン】Flexboxで複数行レイアウトを美しく整える:改行と余白のヒント

Flexboxは、Webページ要素を柔軟にレイアウトするためのレイアウトモードです。複数行レイアウトを作成する場合、Flexboxを使用して要素を折り返すことができます。これは、flex-wrapプロパティを使用して実現できます。手順例この例では、.container クラスが display: flex; と flex-wrap: wrap; に設定されているため、.item クラスの子要素は複数行に折り返されます。margin: 10px; は、アイテム間の余白を10ピクセルに設定します。...


iOSデバイスをターゲットにするための究極のガイド:CSSメディアクエリを超えた方法

iOSデバイスのみをターゲットにするには、いくつかの方法があります。それぞれのアプローチには長所と短所があり、最適な方法は、特定のニーズによって異なります。User Agentによるターゲティング最も一般的な方法は、ユーザーエージェント文字列を使用してデバイスを識別することです。これは、ブラウザが自身を識別するために送信するHTTPヘッダーの情報です。...


SQL SQL SQL SQL Amazon で見る



CSS marginとpaddingで、Webページの余白を美しく調整しよう

余白の場所margin: 要素の外側の余白を設定します。要素の枠線(border)の外側にスペースを作ります。要素の幅への影響margin: デフォルトでは要素の幅に含まれません。つまり、marginを設定しても要素の幅は変わりません。適用される要素


【完全ガイド】CSSでテキストを縦中央に配置する7つの方法と使い分け

display: flex と align-items: center を使う親要素に display: flex を設定し、子要素を垂直方向に中央揃えしたい場合は align-items: center を設定します。これは最もシンプルで汎用性の高い方法です。