当我在一个小项目上工作时,我遇到了一个删除,我不能为我的生活弄清楚。为什么 #appHead 中的div导致 #windowBody 向下移动?任何想法?
<html>
<head>
<meta http-equiv="Content-Type" content="text/html; charset=UTF-8">
<title>Atlas - Valencia College</title>
<meta charset="utf-8">
<link rel="stylesheet" href="styles.css" type="text/css">
<!--<script type="text/javascript" src="scripts.js"></script-->
</head>
<body>
<div id="bgGrad"></div>
<div id="windowTop">
</div>
<div id="windowBody">
<div id="appEnv">
<div id="appHead">
<div style="margin-top:20px;height:20px;"></div>
</div>
</div>
</div>
<div id="windowFoot">
</div>
</body>
</html>
CSS
体{ 背景:URL( “lol.png”); 余量:0; } #appEnv { 宽度:100%; 高度:100%; 顶部:0; 底部:0; 左:0; 右:0; 轮廓:点缀1px蓝色; } #appHead { 高度:100像素; } #windowBody { 位置:绝对的; 顶部:0; 宽度:100%; 底部:0; }
即使我删除了所有绝对定位,但仍然如此,但我可能做错了。
答案 0 :(得分:2)
稍微安全的方法也是添加
#appHead:after {
content:"";
display:block;
clear:both;
font-size:0;
line-height:0;
}
这对你有用吗?
答案 1 :(得分:2)
好的,我玩了一下,这就是我发现的:
首先,#windowow不会被移动。如果你在它上拍一个边框,你会看到它不会移动而不管其他变化。它实际上是#appHead移动。
在你的代码中,你在appHead div中没有任何内容,而是抛出另一个包含margin-top的div。因为#appHead中没有内容,所以它基本上被合并到它的子div并获得它的margin-top属性,将其向下移动20px(你可以将20px更改为另一个数字以查看更改)。将一个单词添加到#appHead(但不在其子div中)将完全解决问题。
您可以在此处使用它:http://jsfiddle.net/tsuujin/QcpgC/
答案 2 :(得分:0)
在#appEnv元素上使用border
代替outline
。
{
border: dotted 1px blue;
}
答案 3 :(得分:0)
当您申请
时,保证金将停止推送所有内容 float: left;
(或右)到#appHead里面的div。
答案 4 :(得分:0)
当不使用重置样式表时,我总是发现当靠近dom顶部时,上边距会使页面流动搞乱。除了其他答案,您还可以将overflow:hidden
添加到#appHead
样式
答案 5 :(得分:0)
假设我了解您的最终目标,您可以考虑在CSS中添加#appEnv
position:absolute;