【发布时间】:2014-07-11 17:35:18
【问题描述】:
我在包装器中有 3 个 div。我希望它们中的 2 个粘在左上角,并且它们需要彼此位于下方。第三个 div 需要粘在右上角,但不粘在顶部。
我尝试这样做但失败了: http://jsfiddle.net/TZ82X/
<div id="wrapper">
<div id="logo">Logo</div>
<div id="motto">Motto</div>
<div id="nav">Navigation</div>
</div>
CSS:
#wrapper {
background: #CCC;
width: 500px;
height: 250px;
margin: auto;
}
#logo {
background: tomato;
width: 300px;
height: 20px;
float: left;
}
#motto {
background: sienna;
width: 300px;
height: 20px;
float: left;
clear: left;
}
#nav {
background: seagreen;
width: 200px;
height: 40px;
float: right;
}
这是 .html 中重新排列 div 的第一次修复: http://jsfiddle.net/KJG9q/
<div id="wrapper">
<div id="nav">Navigation</div>
<div id="logo">Logo</div>
<div id="motto">Motto</div>
</div>
这是对另一个容器 div 的第二次修复: http://jsfiddle.net/x98Mf/
<div id="wrapper">
<div id="logo-motto-container">
<div id="logo">Logo</div>
<div id="motto">Motto</div>
</div>
<div id="nav">Navigation</div>
</div>
CSS:
#logo-motto-container {
float: left;
我不想重新排列 .html 中的元素,因为我希望它们为移动设备的样式正确排列,我可以使用另一个包装器 div,但我想知道为什么第一种方法不起作用以及是否有修复它而不弄乱 .html 并保持模板灵活(没有位置:相对)?
【问题讨论】:
-
在我看来,最好的选择是侧边栏内容(徽标和座右铭)的容器。你为什么不想用这个?
-
如有必要我会使用它,但我想更好地理解它为什么会这样
-
您在第二个向左浮动
div之后立即浮动div,这是因为右侧浮动div与第二个向左浮动div并驾齐驱。如果您将右侧浮动的div放在第二个位置,它将与第一个div并驾齐驱。解决方案将是您提供的两个修复程序就足够了! -
关于这个问题的任何更新? .. 像 OP 我想知道是什么导致了这种行为?