ホームページ > ウェブフロントエンド > htmlチュートリアル > 問題点と対策:CSSマージンcollapse_html/css_WEB-ITnose

問題点と対策:CSSマージンcollapse_html/css_WEB-ITnose

WBOY
リリース: 2016-06-24 11:59:13
オリジナル
1437 人が閲覧しました

1:

   2: <html>
ログイン後にコピー
   3: <head>
ログイン後にコピー
   4:     <title></title>
ログイン後にコピー
   5:     <metaname=""content="">
ログイン後にコピー
   6: <style>
ログイン後にコピー
   7: *{
ログイン後にコピー
   8:     margin:0px;
ログイン後にコピー
   9:     padding:0px;
ログイン後にコピー
  10: }
ログイン後にコピー
リー、リー、リー、リー、リー、リー、リー、リー
  11:  
ログイン後にコピー
  12: #no1{
ログイン後にコピー
  13:     background:#808000;
ログイン後にコピー
  14:     width:300px;
ログイン後にコピー
  15:     height:300px;
ログイン後にコピー
  16:     margin:100px 0 0 100px;
ログイン後にコピー
  17:     }
ログイン後にコピー
  18:  
ログイン後にコピー
  19: #no2{
ログイン後にコピー
  20:     background:#c0c0c0;
ログイン後にコピー
  21:     width:150px;
ログイン後にコピー
  22:     height:150px;
ログイン後にコピー
  23:     margin-left:20px;
ログイン後にコピー
  24:     margin-top:30px;
ログイン後にコピー
  25: }
ログイン後にコピー
  26: </style>
ログイン後にコピー

次のようにあるべきだと思うなら:

それは間違いです。結果は次のようになります:

CSS にはマージン崩壊、つまり境界崩壊または境界オーバーラップがあるためです。 2 つの div ブロックが並置されている場合、上の div の margin-bottom と下の div の margin-top が潰れてしまいます。つまり、上下のマージンの最大値が表示値となりますので、その意味では: CSS とブラウザのデザイナーは、レイアウト中に 2 つのコンテンツ ブロックが並んで配置される場合、各ブロックの余白の上または下に 1 つの場所のみを設定することが最善であることを望んでいますw3school では次のことも規定しています: 2 つの垂直マージンが交わるとき、それらはマージンを形成します。マージされたマージンの高さは、マージされた 2 つのマージンの高さの大きい方に等しくなります。

ただし、親ブロック DIV に子ブロック DIV が含まれる場合については、別の CSS 規約に従って説明します。つまり、次のようになります。 要素がブロックレベルの子要素を持つ場合、要素の高さを計算する方法垂直境界線とパディングがない場合、その高さは子要素 の上端と下端の間の距離になります。コードは次のとおりです:

  27: </head>
ログイン後にコピー

father この div には、div を開くことができるコンテンツがないため、高さは 0 です。

  28:  
ログイン後にコピー

に変化した場合、現時点ではテキストが DIV をサポートしているため、高さはテキストの高さになります。

そうは言っても、DIV とそのサブ DIV は、垂直方向の境界線または詰め物に特に注意を払います。これは、内側に洗面器を保持できるかどうかは、主に蓋、垂直方向の境界線、または詰め物に依存します。 . それがこの「鍋蓋」です。したがって、少なくとも 3 つの解決策があります:

1. 親 div の境界線を設定する必要があります。もちろん、境界線を透明に設定することもできます:

  29: <body>
ログイン後にコピー
  30:  
ログイン後にコピー
  31: <div id="no1">
ログイン後にコピー

2.親 DIV にパディングを追加するか、少なくとも padding-top;

  32:     <div id="no2">Span2</div>
ログイン後にコピー
  33: </div>
ログイン後にコピー
  34:  
ログイン後にコピー

3. 親 DIV に overflow:hidden を追加します

  35: </body>
ログイン後にコピー

出典: http: //www.ido321.com/387 .html

関連ラベル:
ソース:php.cn
このウェブサイトの声明
この記事の内容はネチズンが自主的に寄稿したものであり、著作権は原著者に帰属します。このサイトは、それに相当する法的責任を負いません。盗作または侵害の疑いのあるコンテンツを見つけた場合は、admin@php.cn までご連絡ください。
人気のチュートリアル
詳細>
最新のダウンロード
詳細>
ウェブエフェクト
公式サイト
サイト素材
フロントエンドテンプレート