有没有可能只使用CSS/HTML,而不改变标记顺序,就将一个完整宽度的元素移动到另一个元素下方,使其看起来在上方?
<div id="first">first</div>
<div id="second">second</div>
#first {…}
#second {…}
期望结果:
第二个 第一个
order
属性。.container {
display: flex;
flex-direction: column;
}
#first {
order: 2;
width: 10em;
margin-top: 1em;
background-color: orange;
}
#second {
order: 1;
width: 10em;
background-color: yellow;
}
<div class='container'>
<div id=first>
first
</div>
<div id=second>
second
</div>
</div>
只有当您知道第二个元素的确切高度时才能这样做:
#first {
margin-top: 20px;
}
#second {
top: 0;
position: absolute;
}
可以通过使用position: absolute
来解决问题,但这样做的缺点是父元素不会随着子容器(第一个元素)高度的增加而拉伸高度。(要解决这个问题,您应该使用javascript)
CSS
.container {
border: 1px solid green;
display: inline-block;
position: relative;
}
#first {
position: absolute;
top: 100%;
}
.container {
display: flex;
flex-direction: column-reverse;
}
<div class="container">
<div>first</div>
<div>second</div>
</div>