2013-07-29 46 views
8

我需要将定位设置为绝对,因此我可以将#bottom固定在屏幕的底部。我还需要有这个适合容器的宽度/填充#panel。但是,当我将位置设置为绝对值时,宽度仅填充整个屏幕的宽度,我怎样才能阻止它?我需要#bottom以适应#panel的宽度/填充。如何让绝对div适合父宽度/填充?

HTML:

<div id="panel"> 
    <div id="bottom"> 
     <div class="update"></div> 
    </div> 
</div> 

CSS:

#panel { 
    width: 21.25%; 
    height: 100%; 
    background-color: #0794ea; 
    float: left; 
    padding: 0 1.5%; 
    -moz-box-sizing: border-box; 
    box-sizing: border-box; 
} 

.update { 
    width: 100%; 
    background-color: #006699; 
    text-align: center; 
    height: 56px; 
    color: white; 
} 

#bottom { 
    position: absolute; 
    bottom: 20px; 
    width: 100%; 
} 

enter image description here

以上是发生了什么事的图像。绿色是填充,蓝色是它应该适合的内容区域(深蓝色是我试图适合内容区域的实际div(#panel))。我假设,因为它是绝对的,它忽略了这一点,我正在寻找一种方法来解决这个问题。

小提琴:http://jsfiddle.net/qTJhW/

感谢

+0

尝试添加位置:相对于#panel。 –

+0

这无疑改善了这种情况。 #bottom div不再填满整个屏幕,但它仍然忽略#面板的填充(图像上的绿色)。 – jskidd3

+0

我在办公室服务器atm后面。所以不能访问图片。你能为此创建一个小提琴吗? –

回答

2

与你在做什么的问题是,它走的是整个宽度,包括填充,并对准左侧宽度的填充。您可以通过使用包含相对位置的包装来解决此问题。另外不要忘记使#panel位置相对。

你最终的代码是沿着这些路线的东西:

<div id="panel"> 
    <div class="wrapper"> 
     <div id="bottom"> 
      <div class="update"> 
       a   
      </div> 
     </div>  
    </div> 
</div> 

而CSS:

#panel { 
    width: 21.25%; 
    height: 100%; 
    background-color: #0794ea; 
    float: left; 
    padding: 0 1.5%; 
    box-sizing: border-box; 
} 

.update { 
    width: 100%; 
    background-color: #006699; 
    text-align: center; 
    height: 56px; 
    color: white; 
} 

.wrapper { 
    position: relative; 
    height: 100%; 
} 

#bottom { 
    position: absolute; 
    bottom: 20px; 
    left: 0; 
    width: 100%; 
    background: yellow; 
} 

下面是一个例子: http://codepen.io/DanielVoogsgerd/pen/Lezjy

+0

这并不完全回答我的问题,因为HTML的结构,我的错。这是我现在有,如果你可以修改你的答案,以适应这一点,我会很感激:http://jsfiddle.net/qTJhW/ – jskidd3

+0

left:0px为#bottom修复你的问题 –

+0

你能够改变HTML在所有?还是只需要底部div内的更新? 像阿德里安说,你总是可以使用左边的方框:'left:0;' –

-4

添加左:0像素到你的绝对id。它启动形式0像素与他相对ID

1

您可以使用calc这样的:

width: calc(100% - Padding) 
相关问题