2012-01-13 57 views
2

我正在研究一些当前使用LESS,CSS3和其他一些“花哨”技术的项目。我有一些代码段,其计算的高度对我来说:-moz-calc crossbrowser(polyfills?hooks?)

height: -moz-calc(100% - 40px); 

我也用在其他几个地方-moz-计算,计算一些东西。问题是让它工作crossbrowser(O,Safari,Chrome,IE8 +)。即使我试图通过JS(jquery)来完成它也有点棘手,但不幸的是有些情况非常棘手。所以我正在寻找一些自动更新的防弹解决方案,就像它是CSS'calc()一样。

+0

你为什么不能用LESS做到这一点? “防弹解决方案”可能不存在(当然不是在CSS中),你怎么用JavaScript/jQuery来尝试这个? – 2012-01-13 15:28:54

+0

@Madmartigan我无法在我的LESS文件中运行JS。不知道为什么。其实我可以做这样的事情'@var:“hello”.toUpperCase();'但是这个'@height:document.body.clientHeight;'根本不起作用。 – 2012-01-13 18:54:48

回答

1

http://caniuse.com/calc

https://developer.mozilla.org/en/CSS/calc

-webkit-calc(可在Chrome 19开发建设,应该在未来的Safari浏览器可用)

calc(IE9)

---(Opera不支持它还没有)

+1

_you也可以使用IE CSS表达式与旧IE_(trollface)兼容,但不应该。 – c69 2012-01-13 22:59:38

+0

不幸的是-webkit-calc目前还不支持。所以calc()仅适用于IE9 +,Firefox,就是这样。这就是为什么我要找polyfills/hook – 2012-01-14 07:00:51

+0

啊,..真的。但他们正在努力。 https://bugs.webkit.org/show_bug.cgi?id=16662, - 所以你现在唯一的解决方案就是JS,就像看起来一样。 – c69 2012-01-14 10:46:42

1

Webkit刚刚登陆前缀cal c()支持。 -webkit-calc()目前可用于Chrome开发版本,并应包含在Chrome和Safari的下一个版本中。