ホームページ > 記事 > ウェブフロントエンド > CSS マージンの簡単な分析
1. マージンはマイナスになる可能性があります
ボックスモデルでは、コンテンツ領域の幅/高さ、パディング、境界線は負の値にすることはできませんが、マージンは例外で負の値にすることができます。
ネガティブマージンの使い方についてはあまり知りませんが、今後機会があれば追加していきます。ここでは 2 つの古典的なアプリケーションを紹介します。
1. margin-left の負の値をフローティングと組み合わせて、DOM 構造を変更しない流動的なレイアウトを実現します。
(このデモは、CSS float 分析記事のものと同じです。)
2. マイナスのマージン値により、2列の同じ高さのレイアウトが実現します
実装原理は、マージンの負の値とパディングの正の値が互いに打ち消し合うことです。
2. マージンのパーセント値
margin 属性の値がパーセンテージの場合、常に親要素の幅に基づいて計算されます。
私を長い間苦しめた以下のデモをご覧ください。 。 。ただ、知るのが遅かったし、あまり話すと泣いてしまいます。 。 。
3. 垂直方向の余白の結合
この質問はよく混乱を招きますが、覚えておく必要があるのは一文だけです、 縦方向の余白は濃厚接触がある限り統合され、濃厚接触のみが統合されます。
垂直方向のマージンのマージは、隣接する要素で発生する場合は理解しやすいですが、親要素と子要素の間で発生する場合は少し奇妙です。
例を見てみましょう:
垂直方向のマージン結合を解消する方法: 親要素にボーダーまたはパディングを追加して、親要素と子要素のマージン間の密着を解除します。
マージン結合ルール:
<span style="color: #008080;"> 1</span> <span style="color: #0000ff;"><!</span><span style="color: #ff00ff;">DOCTYPE html</span><span style="color: #0000ff;">></span> <span style="color: #008080;"> 2</span> <span style="color: #0000ff;"><span style="color: #800000;">html</span><span style="color: #0000ff;">></span> <span style="color: #008080;"> 3</span> <span style="color: #0000ff;"><span style="color: #800000;">頭</span><span style="color: #0000ff;">></span> <span style="color: #008080;"> 4</span> <span style="color: #0000ff;"><</span><span style="color: #800000;">メタ</span><span style="color: #ff0000;">charset</span><span style="color: #0000ff;">="utf-8"</span><span style="color: #0000ff;">></span> <span style="color: #008080;"> 5</span> <span style="color: #0000ff;"><</span><span style="color: #800000;">タイトル</span><span style="color: #0000ff;">></span>余白合并规则<span style="color: #0000ff;"></</span><span style="color: #800000;">タイトル</span><span style="color: #0000ff;">></span> <span style="color: #008080;"> 6</span> <span style="color: #0000ff;"><</span><span style="color: #800000;">スタイル</span><span style="color: #0000ff;">></span> <span style="color: #008080;"> 7</span> <span style="background-color: #f5f5f5; color: #800000;"> .コンテナ</span><span style="background-color: #f5f5f5; color: #000000;">{</span> <span style="color: #008080;"> 8</span> <span style="background-color: #f5f5f5; color: #ff0000;"> 幅</span><span style="background-color: #f5f5f5; color: #000000;">:</span><span style="background-color: #f5f5f5; color: #0000ff;"> 300px</span><span style="background-color: #f5f5f5; color: #000000;">;</span> <span style="color: #008080;"> 9</span> <span style="background-color: #f5f5f5; color: #ff0000;">高さ</span><span style="background-color: #f5f5f5; color: #000000;">:</span><span style="background-color: #f5f5f5; color: #0000ff;"> 500px</span><span style="background-color: #f5f5f5; color: #000000;">;</span> <span style="color: #008080;">10</span> <span style="background-color: #f5f5f5; color: #ff0000;">マージン</span><span style="background-color: #f5f5f5; color: #000000;">:</span><span style="background-color: #f5f5f5; color: #0000ff;"> 50px</span><span style="background-color: #f5f5f5; color: #000000;">;</span> <span style="color: #008080;">11</span> <span style="background-color: #f5f5f5; color: #ff0000;">背景色</span><span style="background-color: #f5f5f5; color: #000000;">:</span><span style="background-color: #f5f5f5; color: #0000ff;">オレンジ</span><span style="background-color: #f5f5f5; color: #000000;">;</span> <span style="color: #008080;">12</span> <span style="background-color: #f5f5f5; color: #ff0000;">フロート</span><span style="background-color: #f5f5f5; color: #000000;">:</span><span style="background-color: #f5f5f5; color: #0000ff;">左</span><span style="background-color: #f5f5f5; color: #000000;">;</span> <span style="color: #008080;">13</span> <span style="background-color: #f5f5f5; color: #ff0000;"> ボーダー</span><span style="background-color: #f5f5f5; color: #000000;">:</span><span style="background-color: #f5f5f5; color: #0000ff;"> 1px ソリッドブラック</span><span style="background-color: #f5f5f5; color: #000000;">;</span> <span style="color: #008080;">14</span><span style="background-color: #f5f5f5; color: #000000;">}</span> <span style="color: #008080;">15</span> <span style="color: #008080;">16</span> <span style="background-color: #f5f5f5; color: #800000;"> .box1、.box2、.box3、 </span><span style="color: #008080;">17</span> <span style="background-color: #f5f5f5; color: #800000;"> .box4,.box5,.box6 </span><span style="background-color: #f5f5f5; color: #000000;">{</span> <span style="color: #008080;">18</span> <span style="background-color: #f5f5f5; color: #ff0000;">幅</span><span style="background-color: #f5f5f5; color: #000000;">:</span><span style="background-color: #f5f5f5; color: #0000ff;"> 200px</span><span style="background-color: #f5f5f5; color: #000000;">;</span> <span style="color: #008080;">19</span> <span style="background-color: #f5f5f5; color: #ff0000;">高さ</span><span style="background-color: #f5f5f5; color: #000000;">:</span><span style="background-color: #f5f5f5; color: #0000ff;"> 150px</span><span style="background-color: #f5f5f5; color: #000000;">;</span> <span style="color: #008080;">20</span> <span style="background-color: #f5f5f5; color: #ff0000;">マージン</span><span style="background-color: #f5f5f5; color: #000000;">:</span><span style="background-color: #f5f5f5; color: #0000ff;"> 30px auto</span><span style="background-color: #f5f5f5; color: #000000;">;</span> <span style="color: #008080;">21</span> <span style="background-color: #f5f5f5; color: #ff0000;">背景色</span><span style="background-color: #f5f5f5; color: #000000;">:</span><span style="background-color: #f5f5f5; color: #0000ff;">シアン</span><span style="background-color: #f5f5f5; color: #000000;">;</span> <span style="color: #008080;">22</span> <span style="background-color: #f5f5f5; color: #ff0000;"> text-align</span><span style="background-color: #f5f5f5; color: #000000;">:</span><span style="background-color: #f5f5f5; color: #0000ff;"> 中央</span><span style="background-color: #f5f5f5; color: #000000;">;</span> <span style="color: #008080;">23</span> <span style="background-color: #f5f5f5; color: #ff0000;"> 行の高さ</span><span style="background-color: #f5f5f5; color: #000000;">:</span><span style="background-color: #f5f5f5; color: #0000ff;"> 150px</span><span style="background-color: #f5f5f5; color: #000000;">;</span> <span style="color: #008080;">24</span><span style="background-color: #f5f5f5; color: #000000;">}</span> <span style="color: #008080;">25</span> <span style="color: #008080;">26</span> <span style="background-color: #f5f5f5; color: #800000;"> .box1 </span><span style="background-color: #f5f5f5; color: #000000;">{</span> <span style="color: #008080;">27</span> <span style="background-color: #f5f5f5; color: #ff0000;"> margin-bottom</span><span style="background-color: #f5f5f5; color: #000000;">:</span><span style="background-color: #f5f5f5; color: #0000ff;"> 30px</span><span style="background-color: #f5f5f5; color: #000000;">;</span> <span style="color: #008080;">28</span><span style="background-color: #f5f5f5; color: #000000;">}</span> <span style="color: #008080;">29</span> <span style="color: #008080;">30</span> <span style="background-color: #f5f5f5; color: #800000;"> .box2 </span><span style="background-color: #f5f5f5; color: #000000;">{</span> <span style="color: #008080;">31</span> <span style="background-color: #f5f5f5; color: #ff0000;"> margin-top</span><span style="background-color: #f5f5f5; color: #000000;">:</span><span style="background-color: #f5f5f5; color: #0000ff;"> 20px</span><span style="background-color: #f5f5f5; color: #000000;">;</span> <span style="color: #008080;">32</span> <span style="background-color: #f5f5f5; color: #000000;">}</span> <span style="color: #008080;">33</span> <span style="color: #008080;">34</span> <span style="background-color: #f5f5f5; color: #800000;"> .box3 </span><span style="background-color: #f5f5f5; color: #000000;">{</span> <span style="color: #008080;">35</span> <span style="background-color: #f5f5f5; color: #ff0000;"> margin-bottom</span><span style="background-color: #f5f5f5; color: #000000;">:</span><span style="background-color: #f5f5f5; color: #0000ff;"> 30px</span><span style="background-color: #f5f5f5; color: #000000;">;</span> <span style="color: #008080;">36</span> <span style="background-color: #f5f5f5; color: #000000;">}</span> <span style="color: #008080;">37</span> <span style="color: #008080;">38</span> <span style="background-color: #f5f5f5; color: #800000;"> .box4 </span><span style="background-color: #f5f5f5; color: #000000;">{</span> <span style="color: #008080;">39</span> <span style="background-color: #f5f5f5; color: #ff0000;"> margin-top</span><span style="background-color: #f5f5f5; color: #000000;">:</span><span style="background-color: #f5f5f5; color: #00"></span></span></span>