填充中心div的两侧?

时间:2013-05-13 15:57:53

标签: css layout html multiple-columns

我想填充一个居中的div的两侧,每侧有另一个div或span。

我正在使用边距来居中div,如fiddle.

所示

HTML

<div id='A>
  <div id='Ad'>
  </div>
</div>

CSS

#A{
  z-index: 3000;
  position: fixed;
  width: 100%;
  height:  40px;
  background: rgba(0,0,0,0.05);
}

/*
div or span to the left
*/

/*
centered div
*/
#Ad{
  z-index: 3000;
  width:  400px;
  height:  40px;
  margin-left:  auto;
  margin-right:  auto;
  border-left: solid 1px #ff0000;
  border-right: solid 1px #ff0000;
}

/*
div or span to the right
*/

我怎样才能有一个总是占用左边剩余空间的div和另一个占据右边剩余空间的div。

澄清:

中心列需要是恒定宽度。左列和右列随窗口大小而变化。

4 个答案:

答案 0 :(得分:3)

这可以达到你想要的效果 - 它允许你有一个固定宽度的中央div,左右列填满了剩余的空间:

<强> HTML:

<div id="A">
    <div id="Ad">Centre</div>
    <div id="left">Left</div>
    <div id="right">Right</div>
</div>

<强> CSS:

#A {
    z-index: 3000;
    position: fixed;
    width: 100%;
    height: 400px;
    background: rgba(0, 0, 0, 0.05);
}
/*
centered div
*/
 #Ad {
    z-index: 3000;
    width: 400px;
    height: 400px;
    margin-left: auto;
    margin-right: auto;
    border-left: solid 1px #ff0000;
    border-right: solid 1px #ff0000;
}
#left, #right {
    position:absolute;
    left:0;
    top:0;
    right:50%;
    margin-right:200px;
    background:#F00;
    height: 400px;
}
#right {
    left:50%;
    right:0;
    margin-left:200px;
    margin-right:0;
}

关键是左/右边距是中心列总宽度的一半,因此调整它以考虑任何边框或填充。

工作示例:http://jsfiddle.net/2AztF/

答案 1 :(得分:1)

我只想在主容器中使用3 <div>s

<强> HTML:

<div id='A'>
  <div id='AdLeft'></div>
  <div id='Ad'></div>
  <div id='AdRight'></div>
</div>

<强> CSS:

#A { overflow:auto }
#AdLeft { float:left; width:25%; }
#Ad { float:left; width:50%; }
#AdRight { float:left; width:25%; }

以下是修改后的jsfiddle

答案 2 :(得分:1)

要填写div代码右侧和左侧的空间,请确保在这些边上没有边距或填充。

float:right; 
float:left;

HTML:

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

CSS:

.container { overflow: hidden; margin:0; padding:0; }
.right { float: right; width: 150px; }
.center{ float: right; width:50px; margin-right: 50px; }
.left{ float: left; width: 150px; }

.center的边距权限将相应填补空间。

答案 3 :(得分:1)

制作3个div:

<div id="A"></div>
<div id="B"></div>
<div id="C"></div>
<div style="clear:both"></div>

CSS:

 #A,#B,#C{
    float:left;
    width:10%;
  } 
  #B{
    width:80%;
  }

在这里,B是你的主要部分。 最好在使用float属性时清除它。