请教margin的一个问题_html/css_WEB-ITnose

WBOY
풀어 주다: 2016-06-24 12:21:03
원래의
1124명이 탐색했습니다.

我现在使用的浏览器是360极速浏览器。

第一段代码:

<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极速浏览器中,

的margin-top是存在的,目测为10px;

然后,把

中的
div
这一行去掉
产生如下效果:


这个效果有说明了

的margin-top变为0px了。

似乎有些矛盾。

问题很初级,见笑了,求解答…………


回复讨论(解决方案)

本帖最后由 net_lover 于 2013-05-10 11:19:01 编辑

不同的DTD有不同的解释,你可以在页头加上
nbsp;html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">


或者

nbsp;html>

不同的DTD有不同的解释,你可以在页头加上
nbsp;html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">


或者

nbsp;html>
好的,你说的这个我还不是很清楚,我查查这方面的资料先,非常感谢!

第一次是因为div在默认情况是下没有垂直外边距的,而body和p默认情况下是存在外边距的。
因为body和p中间有一个div分隔,所以两个垂直外边距没有发生 “垂直外边距叠加”的效果。

垂直外边距叠加 的前提是两个垂直外边距相邻。

第二次,去掉了div元素,所以会导致body的上外边距和p的默认的上外边距叠加,最后取两者中较小的值。
最后导致的效果是body和p的上外边距值相等。。
所以两个上外边距相等值的元素显示出来都是“重叠”在一起了。

的确有点不好理解。。。

CS高深莫测啊  鄙人还有很多要学的

第一次是因为div在默认情况是下没有垂直外边距的,而body和p默认情况下是存在外边距的。
因为body和p中间有一个div分隔,所以两个垂直外边距没有发生 “垂直外边距叠加”的效果。

垂直外边距叠加 的前提是两个垂直外边距相邻。

第二次,去掉了div元素,所以会导致body的上外边距和p的默认的上外边距叠加,最后取两者中较小的值。
最后导致的效果是body和p的上外边距值相等。。
所以两个上外边距相等值的元素显示出来都是“重叠”在一起了。

的确有点不好理解。。。

第一次和第二次的body边框都是用了solid的,所以不会发生叠加……
而且,垂直合并是取两者中较大的值……

谢谢你的回答!

haslayout和块级上下文,很多时候bug都是这两种原因造成的,

后面加上换行

관련 라벨:
원천:php.cn
본 웹사이트의 성명
본 글의 내용은 네티즌들의 자발적인 기여로 작성되었으며, 저작권은 원저작자에게 있습니다. 본 사이트는 이에 상응하는 법적 책임을 지지 않습니다. 표절이나 침해가 의심되는 콘텐츠를 발견한 경우 admin@php.cn으로 문의하세요.
최신 이슈
인기 튜토리얼
더>
최신 다운로드
더>
웹 효과
웹사이트 소스 코드
웹사이트 자료
프론트엔드 템플릿