用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>