任意切换DOM元素的位置

时间:2014-05-01 23:47:23

标签: javascript html css

我正在建立一个更改小部件的响应式网站'在不同的视口宽度下查看时任意位置。

在视觉上,它转向了这个:

big

进入这个:

small

我的第一种方法是以这种方式设置占位符div元素:

<div data-change-from=".my-element"></div>

使用response.js检测宽度并使用jQuery移动元素,但是使用复杂的网格和更多的小部件,它变得无法管理。

有效且可靠的方法是什么?

1 个答案:

答案 0 :(得分:1)

使用CSS

很棒,做所有事情。

body { position: relative }
body:after {
    content: '';
    display: block;
    clear: both;
}
#one, #two, #three, #four, #five, #six {
    height: 40px;
    background: #aaa;
    margin: 8px 1%;
    float: right;
}
#one-two {
    position: absolute;
    bottom: 0;
    right: 0;
    width: 45%;
}
#one, #two { width: 100% }
#three, #four, #five, #six {
    float: left;
    width: 100%;
}
#five, #six { width: 50% }
@media screen and (min-width: 1000px) {
    #one-two {
        position: static;
        display: inline;
    }
    #one, #three, #five {
        width: 60%;
        float: left;
    }
    #two, #four, #six {
        width: 35%;
        float: right;
    }
}

只需要一个额外的容器:

<div id="one-two">
    <div id="two">2</div>
    <div id="one">1</div>
</div>
<div id="three">3</div>
<div id="four">4</div>
<div id="five">5</div>
<div id="six">6</div>

http://jsfiddle.net/nce9b/

基本上我有一个默认样式,除非在媒体查询(min-width: 1000px)中被覆盖,否则它将被应用。这通过调整浮点数,宽度以及#one#two应用position: absolute(将其移动到底部)的情况重新排列元素。当窗口足够大时,媒体查询会覆盖样式,形成一个漂亮的简单网格。