2012-04-03 53 views
1

我有以下问题: 我有两个div,嵌套在另一个div中。在LESS中计算/检测大小

<div id="parent" style="height: 100%;"> 
    <div id="child1">bla</div> 
    <div id="child2" style="height: 20px;">bla</div> 
</div> 

现在有一种方法(无javascript)动态地将#div1动态扩展到最大值(380px)吗?身高:100%会将其展开为父级的400像素。应该滚动#div1中溢出的内容。

我是LESS的新手,希望可以用这个(例如child1.height =#parent.height-#child2.height)?

回答

1

我知道你说你不想要JavaScript,但不知道如果你的意思是原始JS或者你甚至不想嵌入JS少,如果你不介意嵌入逻辑,你可以使用JavaScript来填充变量如下:

@desiredHeight = getElementById("parent").style("height") - getElementById("child2").style("height"); 
#child1 { height: @desiredHeight; } 

语法可能不正确,因为即时消息不是我的头顶,但类似的东西应该工作。

+0

嘿,谢谢你的提示。不幸的是它为元素返回null。这是为什么?正确的语法应该是:'@ child1Height:&document.getElementById('parent')。offsetHeight-document.getElementById('child2')。offsetHeight +'px'&;'(用&替换&) – johnny 2012-04-03 13:03:47

+0

可能是你少了.js文件在DOM完成加载之前正在加载,可能是因为ID不正确,或者您只是将duff数据放入@ child1Height变量,因此它不知道如何在css中使用它。 – Grofit 2012-04-03 13:58:46

1

如果您使用的less.js不支持* .less文件中的JavaScript评估,请参阅服务器端的LESS实现。