2列灵活布局

时间:2012-09-18 14:02:25

标签: jquery css3 css-float

我有2列结构。使用的CSS如下:

.div-left
{
position: relative;
float: left;
width: 18%;
margin: 1;
}

.div-right
{
position: relative;
float: right;
width: 81%;
margin: 0;
}

我想要一种灵活的结构,当一列折叠时,其他应自动占用空间。

我试图隐藏第一列,如下所示:

$("#test").animate({width: 'toggle'});

这是隐藏我的第一列,但是右列没有占用第一列释放的空间。

我从这里开始使用javascript(http://www.learningjquery.com/2009/02/slide-elements-in-different-directions)。

对此有任何帮助将不胜感激。

1 个答案:

答案 0 :(得分:2)

另一种解决方案:使用CSS过渡(我之所以提到它,因为你在标签中列出了CSS3)和.expanded / .collapsed类。然后使用jQuery来切换类。

demo(点击一列使其展开/回到初始宽度)

HTML:

<div class='left'></div>
<div class='right'></div>

CSS:

* { margin: 0; }
div { min-height: 10em; transition: linear 1s; }
.left {
  float: left;
  width: 18%;
  background: crimson;
}
.right {
  float: right;
  width: 81%;
  background: dodgerblue;
}
.expanded { width: 100%; }
.collapsed { width: 0%; }

jQuery的:

$('div').click(function(){
    $(this).toggleClass('expanded').siblings().toggleClass('collapsed');
});