我在将div
元素垂直堆叠在一起时遇到问题。我有一个mainwrapper
和2个div
元素,我需要堆叠。但每当我给出第一个内部div
position: absolute
然后right: 0
或甚至float: right
时,它就进入第二个div
。有没有办法解决这个问题?
<div class="wrapper">
<div class="test1"></div>
<div class="test2">
<div class="test3"></div>
</div>
</div>
CSS:
.wrapper {
width: 605px;
margin: 0 auto;
position: relative;
background: transparent;
border: 1px solid black;
height: 240px;
}
.test1 {
border: 1px solid black;
width: 200px;
height: 30px;
display: block;
position: absolute;
right: 0;
}
.test2 {
border: 1px solid red;
width: 600px;
height: 200px;
display: block;
position: absolute;
}
.test3 {
border: 1px solid black;
width: 100px;
height: 20px;
position: absolute;
bottom: 20px;
right: 0;
}
这是我的jsfiddle。
答案 0 :(得分:0)
我不完全确定你为什么要像那样定位那些人。我将假设您使用position:absolute以便这些div不会干涉其他内容。此外,没有必要为div设置'display:block',这是它们的默认值。
这是一个随心所欲的小提琴,并且包装器设置为position:absolute,以便这些div不会干扰其他内容。基本上,您将使用包装器作为框架。 Solution
.wrapper {
width: 605px;
left: 50%;
margin-left: -302.5px;
position: absolute;
background: transparent;
border: 2px solid black;
height: 240px;
}
.test1 {
border: 2px solid green;
width: 200px;
height: 30px;
position: relative;
right: 0;
}
.test2 {
border: 2px solid red;
width: 600px;
height: 200px;
position: relative;
}
.test3 {
border: 2px solid black;
width: 100px;
height: 20px;
position: absolute;
bottom: 20px;
right: 0;
}
注意:
答案 1 :(得分:0)
http://jsfiddle.net/uFf9D/会有效吗?
我在.wrapper上注释了维度并添加了overflow:hidden。然后将.test1和.test2更改为position:relative和float:right。
修改:读取宽度,因为它需要居中。
.wrapper {
width: 605px;
/*
height: 240px;
*/
overflow: hidden;
...
}
.test1 {
/*
position: relative;
*/
float: right;
...
}
.test2 {
position: relative;
float: right;
...
}
如果你想跳过浮动和溢出:隐藏,方向:rtl可能是.wrapper的可能解决方案..不知道它是否有效或是否继承。
尝试添加.test2以添加.test1:
width: 100%;
box-sizing: border-box;
-moz-box-sizing: border-box;