1

我有三个 div:头、脚和文本框。head 和 foot div 是固定位置,第三个 div 部分固定(margin-top)。

我的问题是:如何更改文本框的 div 底部以修复不同的显示器尺寸?我不能使用 100% 的高度,因为它挂在步行 div 上。在这个主页我不使用滚动条,因为背景是改变图像文件。我想以某种方式使其边缘底部部分与显示器底部保持距离。


<html>
<head>
<title>Div bottom</title>
<style>
.head{
    position:absolute;
    clear:both;
    top:0px;
    right:0px;
    float:right;
    width:100%;
    height:80px;
    background-color:grey;
}
.foot {
    position:fixed;
    clear:both;
    height:35px;
    right:0px;
    float:right;
    width:100%;
    background-color:grey;
    bottom:0px;
}
.textbox {     
    overflow: hidden;
    position: relative;
    padding:20px;
    border: 1px solid gray; 
    background-color:red;
    z-index:0;
    text-align:justify;
    color:black;
    line-height: 2em;
    border-radius: 3px;
    margin-top:100px;
    width:910px;
    margin-left: auto; 
    margin-right:auto;
}
</style>
</head>

<body>
<div class="head">HEAD</div>

<div class="textbox">?</div>

<div class="foot">FOOT</div>
</body>
</html>
4

2 回答 2

1

您可以使用 javascript 来完成此操作.. 将以下脚本添加到您的脑海中:

<script type="text/javascript">
window.onload=resize_height;

function resize_height(){
    var height=0;
    var divs=document.getElementsByTagName('div');
    if(self.innerHeight){
        height=self.innerHeight;
    }else if(document.documentElement && document.documentElement.clientWidth){
        height=document.documentElement.clientHeight;
    }else if(document.body){
        height=document.body.clientHeight;
    }
    divs[1].style.height=(parseInt(height)-200)+'px';
}

</script>

200 来自高度和填充和边距,您可以通过从其他 div 获取高度/填充并偏移它来动态生成 200 以实现您想要的。

编辑:

此外,对于文本框,删除 margin-top:100px; 并替换为 top:100px;……

.textbox {
    overflow: hidden;
    position: relative;
    top:100px;
    padding:20px;
    border: 1px solid gray;
    background-color:red;
    z-index:0;
    text-align:justify;
    color:black;
    line-height: 2em;
    border-radius: 3px;
    /*margin-top:100px;*/
    width:910px;
    margin-left: auto;
    margin-right:auto;
}
于 2013-10-03T18:27:08.840 回答
0

您不必为此使用脚本,这里是“页眉内容页脚”布局的纯 CSS 解决方案。

部分之间的边距是可选的,垂直和水平居中也是如此。一切都完全响应。

HTML:

<div class="Container">
    <div class="Header">
    </div>
    <div class="HeightTaker">
        <div class="Wrapper Container Inverse">
            <div>
                <div class="Footer">
                </div>
            </div>
            <div class="HeightTaker">
                <div class="Wrapper Content">
                    <div class="Centered">
                    </div>
                </div>
            </div>
        </div>
    </div>

CSS:

*
{
    margin: 0;
    padding: 0;
}
html, body, .Container
{
    height: 100%;
}
    .Container:before
    {
        content: '';
        height: 100%;
        float: left;
    }
.HeightTaker
{
    position: relative;
    z-index: 1;
}
    .HeightTaker:after
    {
        content: '';
        clear: both;
        display: block;
    }
.Wrapper
{
    position: absolute;
    width: 100%;
    height: 100%;
    overflow: auto;
}
.Inverse, .Inverse > *
{
    -moz-transform: rotateX(180deg);
    -ms-transform: rotateX(180deg);
    -o-transform: rotate(180deg);
    -webkit-transform: rotateX(180deg);
    transform: rotateX(180deg);
}

/*For Centering only*/
    .Content:before
    {    
        content: '';
        display: inline-block;
        height: 100%;
        vertical-align: middle;
        margin-left: -5px;
    }
    .Centered
    {
        display: inline-block;
        vertical-align: middle;
    }


/*For demonstration only*/
p
{    
    font-size: 1.3em;
}

.Important
{
    font-weight: bolder;
    color: white;
}

body > .Container
{
    padding: 0 5px;
    text-align: center;
}

.Header, .Footer
{
    margin-bottom: 5px;
    padding: 5px 0;
}
.Header
{
    background-color: #bf5b5b;
}
.Content
{
    background-color: #90adc1;
}
.Footer
{
    background-color: #b5a8b7;
}
于 2013-10-03T21:19:54.387 回答