ホームページ  >  記事  >  ウェブフロントエンド  >  CSS マイナスマージンnotes_html/css_WEB-ITnose

CSS マイナスマージンnotes_html/css_WEB-ITnose

WBOY
WBOYオリジナル
2016-06-24 11:30:441315ブラウズ

水平方向の書式設定

要素に幅を設定すると、それはコンテンツ領域の幅に影響しますが、要素の内側のマージン、境界線、外側のマージンを指定すると、幅の値は増加します(IEの従来の形式)。ボックス モデルの内側のマージンと境界線は、W3C 標準のボックス モデルの幅を拡大します。) 以下の I W3C 標準ボックス モデルを使用して、要素に対する負のマージンの影響について説明します。

#test {            width:200px;            background: red;            padding: 20px;            border:10px solid black;            margin: 20px;       }        <p id="test">aaa</p>

上の p 要素が占める幅の値 = margin(left+right) + padding(left+right) + border(left+)右) + contentwidth = 20*2 + 20*2 + 10*2 + 200 = 300px

通常のフローにおけるブロックレベル要素ボックスの水平部分の合計は、親要素(親要素は通常ブロックレベルの要素です)

要素の幅の値に影響する 7 つの属性のうち 3 つだけを auto に設定できます 要素の contentwidth margin-left margin-right 負のマージンについて話す前に、auto について説明する必要があります

(1) 通常の状況では、これら 3 つの属性の合計は親要素の幅に直接等しく設定されます

( 2) auto 値を設定すると、合計は自動的に親要素の幅の値と等しくなります

#test {            width:200px;            background: red;            margin:0 auto 0 100px;        }            div {            width:500px;        }        <div><p id="test">aaa</p></div>

上記の例では、親要素を含む要素 margin-left:100px margin-right:auto width:200px を設定しています 親要素の幅は 500px

です。右マージンが自動的に200pxになることがわかりました

2.1 左右のマージンは自動で一定の幅になります 親要素の残りのコンテンツ幅(親要素のコンテンツ幅 - 子要素のコンテンツ幅) ) コンテンツの幅) は、親要素内で子要素の中央揃えを実現するために、margin-left margin-right に均等に割り当てられます

2.2 1 つのマージンは自動、子要素の幅は自動、もう 1 つのマージンは固定長です

#test {            width:auto;            background: red;            margin:0 auto 0 100px;        }            div {            width:500px;        }        <div><p id="test">aaa</p></div>

この時に設定すると auto のマージンが 0 になり、幅は残りの値を自動的に埋めます(可能な限り広く)

2.3 両方とも auto に設定すると、2 つのマージンが 0 になり、子要素の幅が親になります 要素のコンテンツの幅

マージンが負の場合を考えてみましょう

 

#test {

width:auto;
background: red;
margin:0 -150px 0 100px;
}
div {
width:50 0px ;
}

 

dc6dce4a544fdca2df29d5ac0ea9906b39b10b877949625ae15cf1f0feb73c8faaa94b3e26ee717c64999d7867364b1b4a316b28748ea4df4d9c2150843fecfba68

 

上記の例では、親要素のコンテンツ幅は 500、子要素の幅は auto の場合、margin-left は 100、margin-right は -150px です。実際のコンテンツ幅の値

550 > 500 を見てみましょう。つまり、子要素の幅が親要素のコンテンツの幅を超えていますが、合計幅の合計が 100 + auto(550) + (-150) = 500 であることは問題ありません。親要素のコンテンツの幅と等しい場合、auto は 550 になります

要素に対する負のマージンの影響を考慮すると、ブラウザはマージンを負の値とみなします。実際には、マージンによって要素の幅が減少するわけではありません。

p {            background: red;            display:inline-block;            width:100px;            margin-right: -20px;        }                <p>aaaaaaa</p><span>aaaa</span>

上の例では、実際には要素の幅は 100 のままですが、負のマージンが設定されているため、ブラウザはその境界線が小さくなったと認識します。

下の図は、margin-right が負に設定されていない場合です

position:relative とは異なり、position:relative では、要素が元の位置に対してドキュメント フロー内でオフセットされます。移動しますが、要素は失われません。元のドキュメントフローの位置

特定のアプリケーションについては、以下を参照してください

リファレンス CSS 権威ガイド

声明:
この記事の内容はネチズンが自主的に寄稿したものであり、著作権は原著者に帰属します。このサイトは、それに相当する法的責任を負いません。盗作または侵害の疑いのあるコンテンツを見つけた場合は、admin@php.cn までご連絡ください。