我想将div放在另一个div中。
以下是css(full example on cssdesk)的相关摘要:
.textblock-container {
width: 500px;
height: 500px;
border: 1px solid red;
}
div.textblock {
width: 100px;
height: 100px;
line-height: 100px;
border: 1px solid black;
position: absolute;
text-align: center;
background: rgb(0, 150, 0); /* Fall-back for browsers that don't
support rgba */
background: rgba(0, 150, 0, .5);
}
以及html的相关摘要:
<div id='blockdiv1' class='textblock-container'>
<div id='blockdiv2' class='textblock'><span>foo (NW)</span></div>
<div id='blockdiv3' class='textblock'><span>bar (NE)</span></div>
<div id='blockdiv4' class='textblock'><span>baz (SW)</span></div>
<div id='blockdiv5' class='textblock'><span>quux (SE)</span></div>
</div>
问题是foo / bar / baz / quux块是相对于浏览器窗口定位的,而不是它们的父元素。
我做错了什么,如何解决?
答案 0 :(得分:27)
将position: relative
添加到父.textblock-container
div。
绝对定位的元素相对于它们最近的定位父元素(例如,最近的父元素,其位置为absolute
或relative
),因此如果它们没有明确定位的父元素(默认位置为{ {1}})他们将相对于窗口。
答案 1 :(得分:7)
除非您将position: relative;
添加到父控制器,否则div将位于窗口的绝对位置
答案 2 :(得分:4)
试试这个:
.textblock-container {
width: 500px;
height: 500px;
border: 1px solid red;
position: relative;
}
div.textblock {
width: 100px;
height: 100px;
line-height: 100px;
border: 1px solid black;
position: absolute;
text-align: center;
background: rgb(0, 150, 0);
background: rgba(0, 150, 0, .5);
}
实际上,您只需要为父div添加position: relative
属性。