使用css自动调整中心div的大小?

时间:2012-03-07 00:00:36

标签: css html width resize wrapping

在调整浏览器窗口/页面大小时,我很难让3个div自动调整大小。

我有两个固定大小的div,我希望中心div自动调整大小以填充剩余空间,并且当页面大小缩小时,不会将第三个div换行换行到换行符。

我将在包含三个div的div上设置一个min-width属性,以防止在中间div大约为65px宽时包装第三个div。

这是否必须使用javascript完成,因为我目前正在尝试用css实现这一点,但我没有运气。

javascript或css表达式类似于width = page.width - div1.width -div3.width但我想尽可能避免使用js。

感谢您的帮助!

麦克

您可以在附加图像中看到预期的行为。

1)我想要什么 2)我目前在收缩方面遇到的问题

1)expected div behavior 2)current div behaviour

我将div重新调整大小并将文本框设置为100%,以便使用div重新调整大小。

然而右侧div可以是267px,如下所示,也可以是192px(离散),如果我只是在某些页面上设置了后边距的代码?或者有没有办法根据div右边的大小使margin-right成为动态?

例如。 HTML

<div id="wrapper">
  <div id="left"></div>
  <div id="right"></div>
  <div id="centre">        
  <div>
</div>

CSS

#wrapper
{height:84px;
 background-image:url(../images/siteImages/header_back.png);
 background-repeat: repeat-x;}

#left
{height:inherit;
 width:512px;
 background-image:url(../images/siteImages/logo.png);
 background-repeat: no-repeat;
 float:left;}

#centre
{width:auto;
 margin-left:512px;
 margin-right:267px;
 height:inherit;}

#right
{padding-right:10px;
 height:inherit;
 float:right;
 text-align:right;}

3 个答案:

答案 0 :(得分:5)

你可以拥有类似的东西:

<div id="a">...</div>
<div id="c">...</div>
<div id="b">...</div>

使用这个CSS:

#a { width: 512px; float: left; }
#b { width: auto; margin-left: 512px; margin-right: 200px;}
#c { width: 200px; float: right; }

我相信我会做你想要的。

答案 1 :(得分:0)

你试过了吗?

<div id="div2" style="margin-left:auto;margin-right:auto;">content</div>

删除div2上可能包含的任何min-width

答案 2 :(得分:0)

只需在CSS中尝试此操作

#centre {overflow:hidden;}

无需指定宽度和宽度保证金和高度; 。它会自动调整。无需更改HTML订单。