Html 颠倒div'的顺序;孩子们
如何使用纯CSS反转div子级的顺序 例如: 我想要Html 颠倒div'的顺序;孩子们,html,css,Html,Css,如何使用纯CSS反转div子级的顺序 例如: 我想要 <div id="parent"> <div>A</div> <div>B</div> <div>C</div> <div>D</div> </div> 我已经在JSFIDLE上创建了一个演示: 使用溶质定位和左上角您可以使用纯CSS实现这一点,但有一些主要的注意事项。尝试使用以下方法之一,
<div id="parent">
<div>A</div>
<div>B</div>
<div>C</div>
<div>D</div>
</div>
我已经在JSFIDLE上创建了一个演示:
使用溶质定位和左上角您可以使用纯CSS实现这一点,但有一些主要的注意事项。尝试使用以下方法之一,但两者都有各自的缺点:
A.
B
C
#上级部门{
浮动:对;
}
绝对位置将从正常文档流中分离出元素,并允许您根据自己的选择精确定位。以下是。CSS唯一的解决方案:(我将所有选择器切换为类选择器,以避免处理可能出现的特殊性问题。这只是我和其他人的习惯。我还删除了与示例无关的样式。) 演示: Javascript解决方案:
var parent = document.getElementsByClassName('top-to-bottom')[0],
divs = parent.children,
i = divs.length - 1;
for (; i--;) {
parent.appendChild(divs[i])
}
演示:有点棘手,但可以工作;给你一个想法:
div#top-to-bottom {
position: absolute;
width:50px;
text-align: left;
float: left;
-webkit-transform: scaleY(-1);
transform: scaleY(-1);
}
div#top-to-bottom > div {
width: 50px;
height: 50px;
position: relative;
float: right;
display: block;
-webkit-transform: scaleY(-1);
transform: scaleY(-1);
}
在垂直轴上镜像容器和儿童。
孩子们沿着容器的y轴倒转,但孩子们自己又是头朝上的
现代的答案是
#parent {
display: flex;
flex-direction: column-reverse;
}
#母公司{
显示:-webkit flex;/*Safari*/
-webkit弹性方向:行反转;/*Safari 6.1+*/
显示器:flex;
弯曲方向:行反向;
}
显示:表头组;
显示:表尾组
儿童
显示:表格
对于家长这里有一个更简单、更便携、带前缀的@vals-answer。请注意,截至2017年2月,只有94%的支持率
.reverse、.reverse>*{
-moz变换:比例(1,-1);
-webkit变换:比例(1,-1);
-o变换:标度(1,-1);
-ms变换:比例(1,-1);
变换:比例(1,-1);
}
A.
B
C
D
要在此处其他地方提供的flex
答案的基础上进一步完善,以下是一个完整的跨浏览器解决方案:
这是另一种简单的现代方式。享受吧!
#父级{
/*只需将displayflex设置为parentdiv*/
显示:-webkit flex;
显示:-ms flexbox;
显示器:flex;
/*如果还需要柱方向,请使用此零件*/
-webkit柔性方向:列;
-ms-flex方向:列;
弯曲方向:立柱;
}
/*这样您就可以决定内部div的顺序*/
#父分区:第n个子分区(1){
-网络工具包订单:4份;
-ms订单:4份;
顺序:4;
}
#父分区:第n个子分区(2){
-网络工具包订单:3份;
-ms订单:3份;
顺序:3;
}
#父分区:第n个子分区(3){
-网络工具包订单:2份;
-ms订单:2份;
顺序:2;
}
#父分区:第n个子分区(4){
-网络工具包订单:1;
-ms订单:1;
顺序:1;
}
A.
B
C
D
100%使用此代码:
<style type="text/css">
.wrapper {
display: flex;
flex-direction: column-reverse;
}
</style>
<div class="wrapper">
<div class="main">top</div>
<div class="footer">bottom</div>
</div>
.包装纸{
显示器:flex;
弯曲方向:柱反向;
}
顶部
底部
我想纯粹使用css的唯一方法就是定位。您需要支持哪些浏览器(因为这是开始使用flexbox的一个好方法),我更喜欢支持所有浏览器browsers@MikeRobinson请用一个有效的答案回答。。。如果它只是在最新的webkit/firefox中,那么每晚都会出现;我不知道用传统方法有什么办法。@AngeloA为什么绝对定位不受欢迎?我尝试了这两种方法,但都没有成功。你能发一把小提琴吗?你的演示不起作用。它们仍然按相同的顺序排列:A,B,C,D@Mohamad这不是预期的吗?预期的顺序是颠倒的。我的错,我犯了一个错误。我编辑了答案以反映这一点。这仅在元素浮动时有效。一旦你清除它们,它就会失败。@Mohamad你更新了你的小提琴吗?因为它仍然以A,B,C,D的顺序显示它们,我不想绝对定位每个元素。对我来说,这就是用问题解决问题。我需要相对位置。这里有一把关于绝对位置的小提琴:但这不是他想要的答案。我已经算出了绝对位置。但我真的需要这个来处理相对定位。这里有一个关于相对定位的小把戏,但我认为这也不是你想要的:谢谢你的解决方案,这也不是我想要的。我认为它不能只用CSS来修复,因此我将使用JS。谢谢。您的回答说只有CSS解决方案,但JSFIDLE演示中包含Javascript。这只是切换“switch”类。这不是解决方案的一部分。你根本不需要它。看到演员们改变他们的顺序真是太酷了。啊,这可能是最好的解决办法!谢谢,先生。这是一个简短的提示-如果您的div上有溢出,它将无法在Firefox和IE/Edge中正确滚动列反转(但在Chrome中工作正常)。快速拨弄:这是一个快速的提示-如果您的div上有溢出,它将无法在Firefox和IE/Edge中正确滚动列反转(但在Chrome中工作正常)。快速提琴:如果div包含图片,那么很有趣。。!
div#top-to-bottom {
position: absolute;
width:50px;
text-align: left;
float: left;
-webkit-transform: scaleY(-1);
transform: scaleY(-1);
}
div#top-to-bottom > div {
width: 50px;
height: 50px;
position: relative;
float: right;
display: block;
-webkit-transform: scaleY(-1);
transform: scaleY(-1);
}
#parent {
display: flex;
flex-direction: column-reverse;
}
<style>
#parent{
display: -webkit-flex; /* Safari */
-webkit-flex-direction: row-reverse; /* Safari 6.1+ */
display: flex;
flex-direction: row-reverse;
}
</style>
#parent {
display: -webkit-box;
display: -ms-flexbox;
display: flex;
-webkit-box-orient: vertical;
-webkit-box-direction: reverse;
-ms-flex-direction: column-reverse;
flex-direction: column-reverse;
}
<style type="text/css">
.wrapper {
display: flex;
flex-direction: column-reverse;
}
</style>
<div class="wrapper">
<div class="main">top</div>
<div class="footer">bottom</div>
</div>