层叠浮动元素
对于浮动元素,堆叠顺序略有不同。浮动元素位于非定位元素和定位元素之间。
- 根元素的背景和边框。
- 按 HTML 中出现的顺序排列的后代非定位元素。
- 浮动元素。.
- 按 HTML 中出现的顺序排列的后代定位元素。
请参阅定位类型以了解定位元素和非定位元素的解释。
注意:如果将 opacity
值应用于非定位元素(即下面示例中的 DIV #4),则会发生奇怪的事情:该块的背景和边框会弹出到浮动块和定位块的上方。这是由于规范中一个特殊的部分:应用 opacity
值会创建一个新的堆叠上下文(请参阅关于 z-index 你所不知道的事)。
示例
在此示例中,您可以看到非定位元素 (DIV #4) 的背景和边框完全不受浮动元素的影响,但内容受影响。这符合标准浮动行为,可以通过添加到上述列表中的规则来显示
- 根元素的背景和边框。
- 按 HTML 中出现的顺序排列的后代非定位元素。
- 浮动元素。
- 后代非定位行内元素.
- 按 HTML 中出现的顺序排列的后代定位元素。
HTML
html
<div id="abs1"><strong>DIV #1</strong><br />position: absolute;</div>
<div id="flo1"><strong>DIV #2</strong><br />float: left;</div>
<div id="flo2"><strong>DIV #3</strong><br />float: right;</div>
<br />
<div id="sta1"><strong>DIV #4</strong><br />no positioning</div>
<div id="abs2"><strong>DIV #5</strong><br />position: absolute;</div>
<div id="rel1"><strong>DIV #6</strong><br />position: relative;</div>
CSS
css
div {
padding: 10px;
text-align: center;
}
strong {
font-family: sans-serif;
}
#abs1 {
position: absolute;
width: 150px;
height: 200px;
top: 10px;
right: 140px;
border: 1px dashed #990000;
background-color: #ffdddd;
}
#sta1 {
height: 100px;
border: 1px dashed #999966;
background-color: #ffffcc;
margin: 0px 10px;
text-align: left;
}
#flo1 {
margin: 0px 10px 0px 20px;
float: left;
width: 150px;
height: 200px;
border: 1px dashed #009900;
background-color: #ccffcc;
}
#flo2 {
margin: 0px 20px 0px 10px;
float: right;
width: 150px;
height: 200px;
border: 1px dashed #009900;
background-color: #ccffcc;
}
#abs2 {
position: absolute;
width: 150px;
height: 100px;
top: 80px;
left: 100px;
border: 1px dashed #999900;
background-color: #ffdddd;
}
#rel1 {
position: relative;
border: 1px dashed #999966;
background-color: #ccffff;
margin: 0px 10px;
text-align: left;
}