margin_html/css_WEB-ITnose について質問する

WBOY
リリース: 2016-06-24 12:21:03
オリジナル
1120 人が閲覧しました

現在使用しているブラウザは360 Speed Browserです。

最初のコード:

<html><head><style type="text/css">html{border:1px solid blue;}body{border:1px solid red;}p{border:1px solid green;}div{border:1px solid red;margin:0px;}</style></head><body><div>div</div><p>p</p><p>p</p></body></html>
ログイン後にコピー


表示効果は次のとおりです


この効果は、360 スピード ブラウザに

のマージントップが存在し、視覚的検査が行われていることを示します。

次に、

div
から行
を削除すると、次の効果が得られます。

この効果は、

の margin-top が0pxになります。

ちょっと矛盾しているように思えます。

質問はとても基本的なものです、冗談です、答えてください...


ディスカッションに返信 (解決策)

この投稿は net_lover によって最終編集されました: 2013-05-10 11:19:01

異なる DTD には異なる違いがあります。説明のために、次のように追加できます




または


異なる DTD には異なる解釈があるため、次を追加できます


1 回目は、div にはデフォルトで垂直方向のマージンがないのに対し、body と p にはデフォルトでマージンがあるためです。
bodyとpを区切るdivがあるため、2つの垂直マージンには「垂直マージンオーバーレイ」の効果はありません。

垂直マージンオーバーレイの前提は、2 つの垂直マージンが隣接していることです。

2 回目では、div 要素が削除されます。これにより、本文の上マージンと p のデフォルトの上マージンが重なり、最終的に 2 つの小さい方の値が取得されます。

最終的な効果は、body と p の上部マージンの値が等しいことです。 。

したがって、上マージンと外側マージンが等しい 2 つの要素は、一緒に「重なって」表示されます。

確かにちょっとわかりにくいですね。 。 。

CS はまだ理解できません。

1 回目は、div にはデフォルトで垂直方向のマージンがないのに対し、body と p にはデフォルトでマージンがあるからです。
bodyとpを区切るdivがあるため、2つの垂直マージンには「垂直マージンオーバーレイ」の効果はありません。

垂直マージンオーバーレイの前提は、2 つの垂直マージンが隣接していることです。

2 回目では、div 要素が削除されます。これにより、本文の上マージンと p のデフォルトの上マージンが重なり、最終的に 2 つの小さい方の値が取られます。

最終的な効果は、body と p の上部マージンの値が等しいことです。 。

したがって、上マージンと外側マージンが等しい 2 つの要素は、一緒に「重なって」表示されます。

確かにちょっとわかりにくいですね。 。 。

1番目と2番目のボディ境界線はどちらも実線なので、重なりません...
さらに、垂直方向の結合は、2つの値の大きい方を取ることです...

ご回答ありがとうございます!

レイアウトとブロックレベルのコンテキスト、バグは次の 2 つの理由で発生することがよくあります。

後ろに改行を追加します

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