当前位置:Gxlcms > html代码 > div块中嵌套div块怎么父块div就会下沉_html/css_WEB-ITnose

div块中嵌套div块怎么父块div就会下沉_html/css_WEB-ITnose

时间:2021-07-01 10:21:17 帮助过:42人阅读

直接上代码:
		

我的意图是出现这样的效果

可结果出现了这样的效果

我不明白为什么我的header上会出现一块空白区域。我哪个属性写错了?


回复讨论(解决方案)

position:absolute;
加上这个

#header #titletext{position:absolute;    margin-top:20px;    margin-left:40px;    padding:0;}

垂直margin压缩

可以考虑:去掉 #titletext{margin-top:20px;}
改设 #header {padding-top:20px;}

#header #titletext{
margin-top:20px; margin-left:40px;
padding:0;




这样改就可以了,不过这样挺乱的
建议你
1、写样式之前先重置所有元素。*{margin:0; padding:0}
2、其次是能用padding的就不用margin,比如你那个titletext的元素,如果不用margin,直接用父元素#header的padding,就能显示正常。
3、另外,h5是标题标签,本身有上下margin的,你需要先重置为0

同上样式问题很多,你说的问题出在

本身是有margin值的,

呵呵,有一个简单的解决方法,就是给header添加"border:1px solid #999"样式,就可以了

#header{
height:100px;
width:100%;
margin-top:0;
padding:0;
overflow:hidden;
background:#999;
}

在ID header里面加上overflow:hidden;就出现你意想的效果了

给所有的元素加上margin:0;padding:0

因为所有的元素在不同的浏览器下默认有不同的margin和padding,如果不重置为0的话,调兼容会调死人的

产生此问题的根本原因是:margin collapse。
请看下面对CSS2.1标准8.3.1小节的引用:
The top margin of an in-flow block element collapses with its first in-flow block-level child's top margin if the element has no top border, no top padding, and the child has no clearance.
翻译为中文就是:
如果in-flow结点没有top-border, 也没有top-padding,那么它的top margin 会与它的第一个孩子的top marin进行合并。

你的代码中h5具有默认的margin 22, titletext具有margin 20, 这两个会进行margin collapse。结果是titletext的top margin为22。
接下来,titletext会与header进行margin collapse。结果是header的top margin为22。
接下来,header会与body进行margin collapse。结果是body的top margin为22。
因此,实际上header、body都具有了22宽度的top margin,而margin是不会被绘制背景色。
你明白了么?。。。。

修改方法,
给header加上border或者padding。

人气教程排行