4

我有一个设置需要一个 div 填充 100% 的屏幕,边距为 10px。在其中,顶部有一个导航窗格,下面是一个带有填充的内容 div 和一个带有填充的内部内容潜水。但是,使用父级的 100% 高度然后添加边距/填充将 div 拉伸到 100% + 边距 + 填充。有解决办法吗?我注意到了绝对定位技巧,但是如果我绝对定位我的内容 div,那会打乱其他 div 的流程。它还使调整大小和流动非液体。有什么方法可以保留这些东西并仍然实现我的目标,最好使用 CSS 而不是 javascript?

下面的代码:

ASPX

<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
<html xmlns="http://www.w3.org/1999/xhtml" >
<head>
    <title>Untitled Page</title>
    <link rel="Stylesheet" href="test.css" />
</head>
<body>
    <div id="wrapper">
        <div id="navigation">
        </div>
        <div id="content">
            <div id="inner">

            </div>
        </div>
    </div>
</body>
</html>

CSS

html, body
{
    height:100%;
    width:100%;
    margin:0px;
    padding:0px;
    background-color:Black;
}
#wrapper
{
    height:100%;
    margin:10px;
    background-color:Blue;
}
#navigation
{
    height:100px;
    background-color:Green;   
}
#content
{
    height:100%;
    padding:10px;
    background-color:Orange;
}
#inner
{  
    height:100%;
    width:100%;
    padding:5px;
    background-color:Lime;
}
4

2 回答 2

17

您可以尝试添加box-sizing:border-box到任何想要同时具有 100% 高度和填充的元素。

在IE8+和不错的浏览器下工作,所以浏览器支持其实还不错

http://css-tricks.com/box-sizing/

于 2012-04-11T14:55:21.007 回答
0

你可以试试两个...

1) 将包装、导航、内容和内部的高度更改为 98% 左右。

2)尝试为包装器和其他元素添加一个透明的 1px 实心边框。这通常会改变元素的边距与边距关系。

希望这可以帮助

于 2012-04-11T14:52:11.430 回答