如何将html中组件的高度设置为父组件的百分比?

时间:2013-02-13 08:44:44

标签: javascript css jsf styles height

我正在开发一个Web应用程序,我们正在用Java和jsf开发它。我创建了一个组件来选择在其他组件(如向导,模态面板等)中使用的数据。事实上,我需要将组件的高度设置为它内部的向导高度的百分比。我尝试使用javascript,我遇到的问题是当我在我的组件内部时,window.onload命令不起作用。现在我只是想提醒()父组件的高度,但它不起作用。这是我的代码:

<script type="text/javascript">

    <![CDATA[

    window.onload = setHeight;

    function setHeight()
    {
        var element = document.getElementById("#{rich:clientId('mainWizardDiv')}");
        var h = window.getComputedStyle(element, null).getPropertyValue("height");
        alert(h);
    }
    ]]>
</script>

你有任何其他建议如何做到这一点,我可以使用onload或任何其他想法。感谢。

2 个答案:

答案 0 :(得分:0)

无法获得百分比高度(google的高度百分比原因)。获取以像素为单位的absole高度,在Javascript中计算(不要忘记将其舍入)并将结果加载到您想要的元素(添加'px'字符串以确保)。这总是对我有用。

编辑:(发表评论后)

也许,我可以看到错误。您正在分配未定义的功能。首先,你必须定义功能,然后使用它

答案 1 :(得分:0)

CDATA使用不当: 应注释CDATA以避免js语法错误:

<html>
    <head>
        <script type="text/javascript">

            //<![CDATA[

            window.addEventListener('load', setHeight);

            function setHeight()
            {
                var element = document.getElementById("div1");
                var h = window.getComputedStyle(element, null).getPropertyValue("height");
                alert(h);
            }
            //]]>
        </script>
    </head>
    <body>
        <div style='height:200px; width:200px;' id='div1'>

        </div>
    </body>

</html>