Warning: file_get_contents(/data/phpspider/zhask/data//catemap/3/html/84.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
更改CSS或javascript中的div顺序_Javascript_Html_Css - Fatal编程技术网

更改CSS或javascript中的div顺序

更改CSS或javascript中的div顺序,javascript,html,css,Javascript,Html,Css,假设我有这样的布局: <div id="main"> <div id="NormalContent"> {some content which is a fixed length list} </div> <div id="FeaturedContent"> {some content which may contain a long list} </di

假设我有这样的布局:

<div id="main">            
    <div id="NormalContent">
        {some content which is a fixed length list}
    </div>
    <div id="FeaturedContent">
        {some content which may contain a long list}
    </div>
</div>

{某些内容是固定长度的列表}
{可能包含长列表的某些内容}
我想把FeaturedContent放在普通内容之上


我可以用CSS做这个吗?我想我可以使用Javascript?

在Javascript中,您只需在页面上对它们重新排序即可


使用CSS,如果它们并排(在某些条件下)可以左右交换,但不能一个在另一个之上。

如果您确切知道FeaturedContent和NormalContent的维度,您可能可以使用position:relative和playing With the top属性

i、 e

但是为了让它们流动。。。隐马尔可夫模型。。。我不确定你能做到

使用jQuery,您可以执行以下操作:

 $("#NormalContent").remove().insertAfter($("#FeaturedContent"));

这是一种使用一行jQuery移动它们的更清晰的方法:

$('#FeaturedContent').prependTo('#main');

对于非jquery答案

var content = document.getElementById('FeaturedContent');
var parent = content.parentNode;
parent.insertBefore(content, parent.firstChild);

请注意,不需要从DOM中删除它,第二次添加它将移动它。

这个答案似乎也适用。CSS(3)唯一,非常优雅的解决方案


CSS3中有一个模糊的特性允许这样做——遗憾的是,该文档已经有7年多的历史了,据我所知,没有任何浏览器尝试实现这一点。+1 Alohci,这确实是模糊的。老实说,我很高兴没有一群CSS设计师像那样移动内容,所以我也不难过这个功能没有实现。但不是一个高于另一个……除非元素是固定的/绝对的/相对的。向上投票
var content = document.getElementById('FeaturedContent');
var parent = content.parentNode;
parent.insertBefore(content, parent.firstChild);