【发布时间】:2014-05-23 09:52:09
【问题描述】:
我有一个窗口,我想填满整个屏幕,这样页脚总是不在屏幕上。我用最小高度完成了这个:
#cnt
{
min-height: calc(100% - 62px);
}
但是,在某些情况下,对于我创建的侧边栏而言,它可能太小了。侧边栏的最小高度为 404px。我怎样才能同时使用这两者,以便它使用更大的价值?这可以用严格的 CSS 完成还是我需要 JS?
这不起作用:
#cnt
{
min-height: calc(100% - 62px);
min-height: 404px;
}
它最终总是使用 404px 值。
编辑:
这是我的 JS/jQuery 解决方案。我发现的一个问题是我的浏览器的$(window).height() 正在返回一个比它应该的值大400px 的值。此外,在调整大小时,它会在一个值 (+377px) 和另一个值 (+787px) 之间来回跳转,其中 + 表示它比实际值大得多。为了解决这个问题,我使用了<cnt> 元素本身的高度,但这也存在相同的来回跳转大小问题。
$(window).resize(function(){
if($("cnt").outerHeight() < 404)
{
$("cnt").css("min-height", "404px");
}
else
{
$("cnt").css("min-height", "calc(100% - 62px)");
}
}).load(function(){
if($("cnt").height() < 404)
{
$("cnt").css("min-height", "404px");
}
else
{
$("cnt").css("min-height", "calc(100% - 62px)");
}
});
JSFiddle
【问题讨论】:
-
你能做一个小提琴吗?
-
@ramesh 是的,我会画一个
-
你不能用
min-height: calc(max(404px, 100% - 62px));吗? AFAIR,Firefox 和 Chrome 都支持它。 -
据我所知,您只能在 CSS3 中进行简单的数学运算(加法、减法)。无法比较值。在 Javascript 中,这绝对是可能的。如果您不想使用 JS 也许 Less 可以帮助您。我不确定...
-
@Ennosigaeon Well JS 是一个选项;我只是想知道是否有纯 CSS 解决方案。
标签: javascript css height