2012-07-26 49 views
1

我想创建一个居中div,一个左边和一个右边div的3列布局。左侧和右侧的div应该从居中div扩展到页面的左侧和右侧。居中的div包含具有透明区域的元素,因此居中div不应与左右div相重叠。如果居中的div具有固定的宽度,我设法创建了一个解决方案。问题是,是否有可能创建一个类似的布局,但具有动态宽度的分区格?3列布局,100%宽度和可变中心div

jsFiddle Link

这里是固定宽度的代码。

CSS:

#divCenter{ 
    position:absolute; 
    top:0%; 
    left:0; 
    right:0; 
    height:50px; 
    width:500px; 
    margin:0 auto; 
    border: 1px solid #aaaaff; 
    background:#aaaaff; 
    z-index:2; 
} 
#divLeft{ 
    position:absolute; 
    top:0; 
    left:0%; 
    width:50%; 
    border: 1px solid #aaffaa; 
    z-index:1; 
} 
#divLeftInner{ 
    height:60px; 
    margin-right:250px; 
    background:#aaffaa; 
} 
#divRight{ 
    position:absolute; 
    top:0; 
    right:0%; 
    width:50%; 
    border: 1px solid #ffaaaa; 
    z-index:1; 
} 
#divRightInner{ 
    height:60px; 
    margin-left:250px; 
    background:#ffaaaa; 
} 

HTML:

<div id="divCenter"> 
</div> 
<div id="divLeft"> 
    <div id="divLeftInner"> 
    </div> 
</div> 
<div id="divRight"> 
    <div id="divRightInner"> 
    </div> 
</div> 
+0

看起来像你正在寻找这样的东西:http://stackoverflow.com/questions/11356283/how-to-make-a-dynamic-layout-only-by-css/11381054 – Aniket 2012-07-26 07:54:00

回答

1

浮动所有列左,设置左,右列具有相同的宽度 - 使用JavaScript。

HTML

<div id="wrapper"> 
    <div id="left" class="col"></div> 
    <div id="mid" class="col"></div> 
    <div id="right" class="col"></div> 
</div>​ 

CSS

.col {float:left;height:200px;} 
#left, #right {width:30%;background:red;} 
#mid {width:40%;background:blue;} 

jQuery的

//extra verbose for clarity's sake 
var setWidths = function() { 
    var wrapWidth = $("#wrapper").width(); 
    var midWidth = $("#mid").width(); 
    var leftOverWidth = wrapWidth - midWidth; 
    var sideColWidth = leftOverWidth/2; 
    $(".sidecol").width(sideColWidth); 
} 

//set new sizes whenever the window is resized 
$(window).on("resize", setWidths); 

$(function() { 
    setWidths(); //set correct sizes when the DOM has loaded 
});​ 

http://jsfiddle.net/GYGL3/37/

+0

哦,我明白了。对不起,遗漏了那个小细节。 :)我认为你需要使用JavaScript来实现这样的解决方案。让我为你更新我的答案,坚持... – 2012-07-26 08:14:48

+0

更新。至于_I_知道你要求的是不是可行的宽度只是CSS。 – 2012-07-26 08:21:20

+0

感谢代码 - 它似乎工作。无论如何,我不想依赖启用JavaScript的布局。如果仅仅用CSS就不可能,我会用一个固定宽度的div来解决我的问题。 – Wolfgang 2012-07-26 08:39:00

相关问题