2012-04-11 62 views
1

我的菜单有问题: 我有一个960像素的div,它有一个背景(图像2)。在图片2的左侧,需要另一个元素,其中fitt留出空间,右侧需要一个div,它需要合适的空间。菜单拟合窗口大小

所以,如果我有一个1024像素的分辨率,左边需要有32px,中心(永远)960px和右边32px。如果分辨率为2048px,则左边:544px,中心:960px,右边:544px。

<div id="container-menu"> 
    <div id="left-bg">// EMPTY, ONLY NEED TO FIT THE WINDOW LEFT //</div> 
    <div id="center-bg">// HERE GO MENU AND LOGO //</div> 
    <div id="right-bg">// EMPTY, ONLY NEED TO FIT THE WINDOW RIGHT//</div> 
</div> 

见图像: enter image description here

UPDATE:

图像1和图像3具有宽度的1pxrepeat-x添加到背景

图像2具有的宽度

960px

所有图像都是透明PNG。

谢谢!

+0

我最近回答了类似的问题,一起来看看:HTTP: // STA ckoverflow.com/a/9953201/825789。它只使用两列,但您可以对三列使用相同的技巧。 – bfavaretto 2012-04-11 14:40:44

+0

左右图像需要展开,它们会重复图案还是阻挡颜色,如同在你的例子中那样? – hcharge 2012-04-11 14:43:03

+0

@hcharge'1 x 60 px''repeat-x'。更新问题。 – 2012-04-11 14:44:46

回答

1

您可以使用CSS3 Flex属性为此。

例如:

HTML

<div class="parent"> 
<div class="left">1</div> 
<div class="middle">2</div> 
<div class="right">3</div> 
</div>​ 

CSS

.parent { 
    display: -moz-box; 
    -moz-box-orient: horizontal; 
    display:-webkit-box; 
    -webkit-box-orient: horizontal; 
    width: 100%; 
} 

.parent div{ 
    -moz-box-flex: 1; 
    -webkit-box-flex: 1; 
    height:40px; 
} 
.parent .middle{ 
    width:460px; 
    background:yellow; 
} 
.left{background:red;} 
.right{background:blue;} 

入住这http://jsfiddle.net/pMh97/1/

+0

不错!这是否与主流浏览器一起工作? – 2012-04-11 14:54:36

+0

是的,它可以工作到所有主流浏览器,直到IE9及以上。 – sandeep 2012-04-11 14:56:45

+0

感谢您的帮助! – 2012-04-11 15:02:34