用CSS定位三个div

时间:2020-03-06 14:43:44  来源:igfitidea点击:

谁喜欢谜语? ;)

我有三个div:

<div id="login" />
<div id="content" />  
<div id="menu" />

我将如何定义CSS样式(不触摸HTML)以将menu-div作为左列,将login-div保留在右列,将content-div也包含在右列但在login-div之下。

每个div的宽度是固定的,但高度不是固定的。

解决方案

#menu {
  position:absolute;
  top:0;
  left:0;
  width:100px;
}
#content, #login {
  margin-left:120px;
}

为什么这样呢?标记中最后一个菜单使它变得很难。我们也许还可以浮动内容和登录权限,并为内容添加了clear:right,但是我认为这可能是我们最好的选择。没有看到更大的图景,很难给出一个肯定会适合情况的解决方案。
编辑:这似乎也可以:

#content, #login {
  float:right;
  clear:right
}

进一步考虑:如果我们希望将列放在居中的布局中,则绝对定位将不起作用(或者不能很好地起作用)。只要我们可以使用浮点解决方案来满足任何边界之间的类型要求,就可以使用浮点型。我们最好选择那种方式。再说一次,如果该站点应该对齐,那么我认为绝对方法会很好地满足需求。

飘着……不完美。克里斯的答案似乎是一个更好的解决方案。

#login {
  float: right;
  width: 400px;
  border: 1px solid #f00;
}

#content {
  clear: right;
  float: right;
  width: 400px;
  border: 1px solid #f00;
}

#menu {
  float: left;
  width: 400px;
  border: 1px solid #f00;
}
<div id="login">Login</div>
<div id="content">Content</div>
<div id="menu">Menu</div>