当前位置:  开发笔记 > 编程语言 > 正文

CSS如何设置div高度100%减去nPx

如何解决《CSS如何设置div高度100%减去nPx》经验,为你挑选了4个好方法。

我有一个包装div,它将两个div相邻.在这个容器上方,我有一个包含我标题的div.包装div必须是100%减去标题的高度.标题约为60像素.这是固定的.所以我的问题是:如何设置我的包装div的高度为100%减去60 px?


libjup.. 258

在CSS3中你可以使用

height: calc(100% - 60px);

确保" - "符号前后有空格.Firefox需要在" - "符号前有空格. (22认同)

完善.我不知道CSS3可以做到这一点. (7认同)

这太棒了!谢谢......解决了我的问题. (2认同)


Alsciende.. 78

这是一个工作的CSS,在Firefox/IE7/Safari/Chrome/Opera下测试.

* {margin:0px;padding:0px;overflow:hidden}
div {position:absolute}
div#header {top:0px;left:0px;right:0px;height:60px}
div#wrapper {top:60px;left:0px;right:0px;bottom:0px;}
div#left {top:0px;bottom:0px;left:0px;width:50%;overflow-y:auto}
div#right {top:0px;bottom:0px;right:0px;width:50%;overflow-y:auto}

"overflow-y"未经w3c批准,但每个主流浏览器都支持它.如果内容太高,你的两个div #left和#right将显示一个垂直滚动条.

为了在IE7下工作,您必须通过添加DOCTYPE来触发符合标准的模式:









high content



1> libjup..:

在CSS3中你可以使用

height: calc(100% - 60px);


确保" - "符号前后有空格.Firefox需要在" - "符号前有空格.
完善.我不知道CSS3可以做到这一点.
这太棒了!谢谢......解决了我的问题.

2> Alsciende..:

这是一个工作的CSS,在Firefox/IE7/Safari/Chrome/Opera下测试.

* {margin:0px;padding:0px;overflow:hidden}
div {position:absolute}
div#header {top:0px;left:0px;right:0px;height:60px}
div#wrapper {top:60px;left:0px;right:0px;bottom:0px;}
div#left {top:0px;bottom:0px;left:0px;width:50%;overflow-y:auto}
div#right {top:0px;bottom:0px;right:0px;width:50%;overflow-y:auto}

"overflow-y"未经w3c批准,但每个主流浏览器都支持它.如果内容太高,你的两个div #left和#right将显示一个垂直滚动条.

为了在IE7下工作,您必须通过添加DOCTYPE来触发符合标准的模式:









high content


3> Aaron Digull..:

如果您需要支持IE6,请使用JavaScript以管理包装器div的大小(在读取窗口大小后设置元素的位置(以像素为单位)).如果您不想使用JavaScript,则无法完成此操作.有一些解决方法,但希望一两个星期,使其适用于每种情况和每个浏览器.

对于其他现代浏览器,请使用此css:

position: absolute;
top: 60px;
bottom: 0px;


不要指定高度,使用顶部和底部,让浏览器计算高度.
对于滚动条,在包装器内部添加一个完全填充它的div并使其溢出:滚动;

4> Jayaveer..:

伟大的...现在我已经停止使用他了他...他除了主容器,如下所示:

这是css:

#divContainer {
    width: 100%;
    height: 100%;
}
#divHeader {
    position: absolute;
    left: 0px;
    top: 0px;
    right: 0px;
    height: 28px;
}
#divContentArea {
    position: absolute;
    left: 0px;
    top: 30px;
    right: 0px;
    bottom: 30px;
}
#divContentLeft {
    position: absolute;
    top: 0px;
    left: 0px;
    width: 250px;
    bottom: 0px;
}
#divContentRight {
    position: absolute;
    top: 0px;
    left: 254px;
    right: 0px;
    bottom: 0px;
}
#divFooter {
    position: absolute;
    height: 28px;
    left: 0px;
    bottom: 0px;
    right: 0px;
}

我在所有已知的浏览器中测试了这个并且工作正常.使用这种方式有什么缺点吗?

推荐阅读
Life一切安好
这个屌丝很懒,什么也没留下!
DevBox开发工具箱 | 专业的在线开发工具网站    京公网安备 11010802040832号  |  京ICP备19059560号-6
Copyright © 1998 - 2020 DevBox.CN. All Rights Reserved devBox.cn 开发工具箱 版权所有