Css 具有float属性的div布局
我想实现以下布局: 代码如下:Css 具有float属性的div布局,css,html,Css,Html,我想实现以下布局: 代码如下: <div class="m"> <div class="l"></div> <div class="r"> <div class="r1"></div> <div class="r2"></div> </div> </div> 其结果是: 我做错了什么? 任何帮助都将不胜感激 这对你有
<div class="m">
<div class="l"></div>
<div class="r">
<div class="r1"></div>
<div class="r2"></div>
</div>
</div>
其结果是:
我做错了什么?
任何帮助都将不胜感激 这对你有用吗
您必须设置
位置:绝对;顶部:0px。
你没有做错什么,r2的位置是可以预料的。您需要为.r2设置一个负的最大值。顶部负值等于.r1的高度。所以如果.r1{height:50px;}
那么.r2{top:-50px;}
。另一个选项是浮动.r1和.r2,而不是定位它们。尝试在r上使用position:relative
,并更改为position:absolute onr1和r2,在两者上保留top:0
小心,这样内容r将扩展到r1和r2以下。如果这是一个问题,为了避免出现这种情况,请使用r右键填充
根据您的原始代码,我制作了一个可以实现您绘制的布局的程序
当然,小提琴中的边框和颜色是为了演示
生成的html:
<div class="m">
<div class="l">Left</div>
<div class="r">Right
<div class="r1">R1</div>
<div class="r2">R2</div>
</div>
<div class="clearfix"></div>
</div>
你试过r2上的top:0
吗?@lorenzo-s:是的,我试过。相同的结果。好的,那么试着在r上使用position:relative
,在r1和r2上改为position:absolute
,在两者上都保留top:0
。@lorenzo-s:工作得很好。把它作为答案贴出来,这样我就可以接受了。谢谢你实际上这使得r1
和r2
根据屏幕定位,而不是r
div。r
div必须像lorenzo-s写的那样有position:relative
。谢谢你,这完美地解决了我的问题。不,divr
除了这些div之外没有其他内容。
div{
height:100px;
}
div.m{
border:1px solid black;
width: 100%;
}
div.r{
position:relative;
border:1px solid blue;
width:33%;
}
div.r1, div.r2{
border:1px solid red;
}
div.l{
float: left;
border:1px solid green;
width:33%;
}
div.r{
float: right;
}
div.r2{
position:absolute;
right:65px;
top:0px;
}
div.r1{
position:absolute;
width:60px;
right:0px;
top:0px;
}
<div class="m">
<div class="l">Left</div>
<div class="r">Right
<div class="r1">R1</div>
<div class="r2">R2</div>
</div>
<div class="clearfix"></div>
</div>
div.m {
border: 2px solid gray;
width: 100%;
}
div.m div.l{
border: 2px solid green;
float: left;
}
div.m div.r {
border: 2px solid blue;
float: right;
display: inline-block;
}
div.r1, div.r2 {
border: 2px solid red;
display: inline-block;
}
div.clearfix {
clear: both;
}