javascript-使用CSS更改DOM元素顺序(Crocodoc)
作者:互联网
这个问题已经在这里有了答案: > How can I reorder my divs using only CSS? 23个
是否可以使用CSS更改DOM元素顺序?我有一个iframe,我要在其中将工具栏从iframe的主要内容从上更改为下.
所以从这个:
<iframe>
<html>
<body>
<div id='toolbar'></div>
<div id='main_content'></div>
<div id='other_stuff'></div>
</body>
</html>
</iframe>
对此:
<iframe>
<html>
<body>
<div id='main_content'></div>
<div id='toolbar'></div>
<div id='other_stuff'></div>
</body>
</html>
</iframe>
如果使用CSS无法做到这一点,那么有人可以建议如何使用JavaScript吗?操纵iframe内容总是使* ^%$感到困惑.作为实际的应用程序,我实际上指的是iframe that is generated with Crocodoc (https://crocodoc.com/docs/walkthrough/skinning/),因此我的目的是使这个问题对那些使用此服务的人员也很有价值.
解决方法:
我参加聚会已经很晚了,但是我只想让大家知道您实际上可以仅使用CSS来更改DOM顺序.
尽管要做到这一点,我们必须使用CSS3 flexbox语法.所以基本上IE10,对于我来说通常不是问题,因为我使用它来操纵移动网站.
那么我们该怎么做呢?
父级需要成为flexbox元素.例如:
(此处仅使用webkit供应商前缀.没有它,css令人眼花as乱)
#main {
display: -webkit-box;
display: -webkit-flex;
display: flex;
-webkit-box-orient: vertical;
-webkit-flex-direction: column;
flex-direction: column;
-webkit-box-align: start;
-webkit-align-items: flex-start;
align-items: flex-start;
}
然后,通过用以下命令指示其顺序来交换div:
#main > div#one{
-webkit-box-ordinal-group: 2;
-moz-box-ordinal-group: 2;
-ms-flex-order: 2;
-webkit-order: 2;
order: 2;
overflow:visible;
}
#main > div#two{
-webkit-box-ordinal-group: 1;
-moz-box-ordinal-group: 1;
-ms-flex-order: 1;
-webkit-order: 1;
order: 1;
}
祝好运!
标签:javascript,css,cross-domain,iframe,crocodoc 来源: https://codeday.me/bug/20191009/1880894.html