2列布局与不同视图:100%:0%,70%:30%,0%:100%

时间:2014-06-24 14:38:16

标签: jquery html css html5 css3

这是一个HTML / CSS结构/位置问题,它可能很快,我只是错过了一些东西。已经好几天了...无法弄明白。

我有几乎全宽的信息输入,当我点击一个按钮时,我希望第二个面板从右边滑入~68 / 28的比例,如果我点击另一个按钮,右侧面板占据整个宽度。

我尝试了很多东西,相对位置,漂浮......但我似乎无法弄明白。理想情况下,使用CSS“position”属性可以使用CSS3使动画流畅。

看起来我对定位东西真的很糟糕。

这是HTML,简单明了:

<div class="container">
    <div class="col-left">Some content here from left col</div>
    <div class="col-right">Some content ehre from right col</div>
</div>

和不起作用的CSS:

.container{
    position: absolute;
    left: 50px;
    padding: 0 40px;
    right: 0;
}

.col-left. col-left{
    position: relative;
    display: block;  
    top:0px;
    -webkit-transition: all 500ms ease;
    -moz-transition: all 500ms ease;
    -ms-transition: all 500ms ease;
    -o-transition: all 500ms ease;
    transition: all 500ms ease;
}

.col-left{
    left:0px;
}
.col-right{
     right: -100%;  
}

body.split .col-left{   
}

body.split .col-right{
}

这是一个小提琴:

http://jsfiddle.net/5zG3q/21/ (正如你所看到的,我已经在Fiddle的v21上,仍然无法弄明白)

提前感谢您的帮助。

EDITS 经过一些调整后,我得到了更接近我想要的东西,但感觉很脏...... http://jsfiddle.net/5zG3q/23/

1 个答案:

答案 0 :(得分:0)

从@drew_w和其他帖子的灵感来看,我认为我找到了解决方案。 我在col的宽度上加了一个包裹DIV。 那么divs比率,我必须明显地除以2。然后我可以用宽度和位置来播放动画。

.container {
    position: absolute;
    left: 60px;
    padding: 0 40px;
    right: 0;
    overflow:hidden;
    background:#e2e2e2;
}
.inner-container{
    display: block;
    width: 200%;
    overflow: hidden;
}
.col-left,  .col-right {
    display: inline-block;
    vertical-align: top;
    -webkit-transition: all 500ms ease;
    -moz-transition: all 500ms ease;
    -ms-transition: all 500ms ease;
    -o-transition: all 500ms ease;
    transition: all 500ms ease;
}
.col-left {
    width: 50%;
    background: green;
}
.col-right {
    margin-left: 10%;
    width: 29%;
    background: red;
}
body.split .col-left {
    width: 33%;
}
body.split .col-right {
    margin-left: 1%;
    width: 15%;
}
body.full .col-left {    
    width: 33%;
    margin-left: -33%;
}
body.full .col-right {
    margin-left: 0%;
    width: 50%;
}

必须添加一些JS,为主体添加一个类:

$("body").on("click", "[data-toggle-view]", function () {    
    var $this = $(this);
    var $body = $("body");
    var view = $this.data("toggleView");
    $body.removeClass("split full");
    $body.addClass(view);
    return false;
});

这是小提琴: http://jsfiddle.net/5zG3q/23/

仍然感觉不干净,但它确实有效。