时间:2021-07-01 10:21:17 帮助过:42人阅读
XXX系统
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;
同上样式问题很多,你说的问题出在
呵呵,有一个简单的解决方法,就是给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。