在CSS或javascript中更改div顺序

时间:2011-01-15 12:33:54

标签: 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}
    </div>
</div>

我希望将FeaturesContent放在NormalContent之上。

我可以用CSS做到这一点吗?我想我可以使用Javascript吗?

5 个答案:

答案 0 :(得分:9)

对于非jquery答案

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

请注意,无需将其从DOM中删除,再次添加它会移动它。

答案 1 :(得分:5)

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

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

答案 2 :(得分:2)

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

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

答案 3 :(得分:2)

如果您确切知道FeaturedContent&amp;的维度。 NormalContent,你可能能够使用position:relative和玩弄他们的顶级属性。

#NormalContent {
  position:relative;
    top:22px;
}

#FeaturedContent {
  position:relative;
    top:-22px;
}

但要使它们流动......嗯......不确定你能做到。

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

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

答案 4 :(得分:0)

这个答案似乎起作用了。仅限CSS(3),非常优雅的解决方案。

CSS have a div that's to the right below the left div. Divs are reverse in HTML