1

是否可以计算css文件中两个div之间的差异?目标是将内容 div 的高度设置为固定页眉和页脚之间给出的最大高度。例如,我们有一个高度为 25% 的页眉 div 和一个高度为 15% 的页脚,两者都是固定的。内容之间的空间应始终完全填满。因此,由于差距会根据客户端显示器上设置的分辨率而变化,我需要类似的东西:

min-height = browserheight - (headerheight + footerheight)

太长...

4

2 回答 2

0

这在纯 CSS 中是不可能的。但是你可以试试 LESS/SASS。它是类 css 的语言,可以编译为纯 css。

http://lesscss.org/

@containerWidth : 1000px;
@contentWidth   : 800px;

.side {
   width : @containerWidth-@contentWidth;
}

但是对于从浏览器获得的值来说,它会更加困难。

例如浏览器宽度或浏览器高度。您可以通过执行一些 javascript 在 LESS 中获取此值(在 LESS 中是可能的)。但是,只有当您附加 .less 文件作为您的样式并在<script>标签中使用 javascript 编译器时,您的样式才会起作用,当页面加载时,它会从您的较少样式 - css 样式中生成。但它很慢。

使用 LESS 的更好方法是编辑 .less 文件中的代码,将其编译为 .css 并在网站上插入纯 css 样式。但是,如果您在服务器端编译样式,则无法获得浏览器的高度或宽度。

于 2012-05-21T15:11:16.370 回答
0

CSS 当前不支持计算值。

管道中有一些实验性的新 CSS 功能可以做到这一点,这些功能目前正在通过标准化过程并刚刚开始出现在 Chrome、Firefox 等的 beta 版本中。你现在可以开始尝试它,但是它需要很长时间才能获得足够的真实世界浏览器支持,您可以将其用于真实站点。

同时,如果您想了解有关 CSS Calc() 功能的更多信息,请查看Mozilla 开发者网站

旧版本的 Internet Explorer 有一个名为 的功能CSS Expressions,在概念上也非常相似。但是,它从未标准化,也不再受支持。

所以就今天的情况而言,标准 CSS 不支持这种事情。

替代方法是使用 CSS 预处理器,例如LESSSASS。在没有纯 CSS 解决方案的情况下,这两个程序都试图用类似编程的特性来扩展 CSS 语法。您使用 SASS 或 LESS 语法编写 CSS,然后将其转换为标准 CSS,然后再将其上传到您的站点。

这些可能会为您提供您正在寻找的东西,尽管最终结果仍然是标准 CSS,您仍然无法使用它们进行动态计算。

希望有帮助。

于 2012-05-21T20:38:30.790 回答