是否有可能"移动"一个全宽度元素低于另一个,所以它只显示在上面只使用CSS / HTML? (而不是更改标记顺序)
<div id="first">first</div>
<div id="second">second</div>
#first {…}
#second {…}
理想的结果:
second first
答案 0 :(得分:18)
您可以使用CSS Flexible Boxes。特别是order
属性。
在这个例子中,我添加了宽度和背景颜色以帮助可视化。请注意,CSS灵活方框的浏览器支持仅限于IE 10 +,Chrome 21 +,Firefox 20+等现代浏览器,在移动浏览器(尤其是旧版浏览器)中可能效果不佳。
.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;
}
&#13;
<div class='container'>
<div id=first>
first
</div>
<div id=second>
second
</div>
</div>
&#13;
答案 1 :(得分:3)
只有你知道第二个元素的确切高度:
#first {
margin-top: 20px;
}
#second {
top: 0;
position: absolute;
}
答案 2 :(得分:1)
答案 3 :(得分:0)
使用position: absolute
进行解决方法,但这有一个缺点,即当子容器(第一个元素)高度增加时,父元素不会拉伸高度。 (要修复你应该使用javascript )
<强> CSS 强>
.container {
border: 1px solid green;
display: inline-block;
position: relative;
}
#first {
position: absolute;
top: 100%;
}
<强> Working Fiddle 强>