直接上代码:
XXX系统
我的意图是出现这样的效果
可结果出现了这样的效果
我不明白为什么我的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。