【问题标题】:How to size div height to content in jQuery UI Layout如何在 jQuery UI 布局中将 div 高度调整为内容
【发布时间】:2014-05-07 14:02:40
【问题描述】:

我正在尝试使用一个简单的垂直分隔栏 jQuery UI Layout 1.30.0.3079-rc。这是我的测试页面:

<!DOCTYPE html>
<html xmlns="http://www.w3.org/1999/xhtml">
<head>
    <title>jQuery UI Layout Vertical Splitter</title>
    <link type="text/css" rel="stylesheet" href="../Content/jquery.ui.layout.css" />
    <style type="text/css">
        body {
            font-family: Calibri;
            font-size: 11pt;
            margin: 0px;
        }
        .RequiredBorder {
            border: 3mm solid silver;
            margin: 3mm;
            padding: 3mm;
        }
        .ui-layout-center, .ui-layout-east, .ui-layout-west, .ui-layout-north, .ui-layout-south {
            border: 1px solid purple;
        }
        #SplitContainer {
            border: 1px solid blue;
        }
    </style>
    <script type="text/javascript" src="../Scripts/jquery-1.8.0.min.js"></script>
    <script type="text/javascript" src="../Scripts/jquery-ui-1.8.23.min.js"></script>
    <script type="text/javascript" src="../Scripts/jquery.layout.min.js"></script>
    <script type="text/javascript">
        var myLayout;
        $(document).ready(function () {
            myLayout = $('#SplitContainer').layout({
                center__minWidth: 100,
                west__minSize: 100,
                west__size: .5, // 50% of layout width
                stateManagement__enabled: false
            });
        });

    </script>
</head>
<body>
    <div class="RequiredBorder">
        <div id="SplitContainer">
            <div class="ui-layout-west">
                LEFT
                <ul>
                    <li>Node 1</li>
                    <li>Node 2
                        <ul>
                            <li>Node 2.1</li>
                            <li>Node 2.2
                                <ul>
                                    <li>Node 2.2.1</li>
                                </ul>
                            </li>
                        </ul>
                    </li>
                </ul>
            </div>
            <div class="ui-layout-center">
                RIGHT
                <p>
                    <input type="text" value="Text 1" />
                </p>
                <p>
                    <input type="text" value="Text 2" />
                </p>
            </div>
        </div>
    </div>
</body>
</html>

我希望两个内容 div 拉伸以水平填充 容器,但拉伸以垂直填充它们的 content

div 宽度完全按照需要工作,但高度始终为零像素,除非我在 CSS 中对高度进行硬编码,例如

    #SplitContainer {
        height: 400px;
    }

硬编码高度不是可接受的解决方案。在真实的网站中,这些 div 的内容可以是窗口高度的一小部分,也可以是窗口高度的几倍,&lt;div class="RequiredBorder"&gt; div 必须将全部内容和大小包含在内容中。

我已经阅读了 jQuery UI 布局文档并在 Google 上进行了搜索,但到目前为止我还没有找到任何有用的东西。我已经尝试过但不起作用的事情:

    #SplitContainer {
        display: inline-block;
    }

这会使容器及其所有内容的宽度和高度为零。

    #SplitContainer {
        position: absolute;
        left: 0px;
        right: 0px;
        top: 0px;
        bottom: 0px;
    }

这会使容器及其所有内容填满整个浏览器窗口,覆盖其余内容。

jQuery UI Layout 网站上的演示页面没有出现这个问题,因为它们都将最外层的布局直接放在了&lt;body&gt; 元素内。当我在我的页面中尝试时,它确实可以正常工作。但是,真正的网站必须将布局包含在嵌套的 &lt;div&gt; 中。

我正在 IE 11 和 Firefox 29 中测试此页面。两者都表现出完全相同的行为。

【问题讨论】:

    标签: javascript css jquery-ui-layout


    【解决方案1】:

    嗯,我知道这行不通,但尝试添加这个? div{ height:4em; width:4em; } <script> 很有可能这不会起作用-_-

    【讨论】:

    • 我不明白你想用这个实现什么。无论如何我都试过了,它只是将内容设置为固定大小,这不是我想要的。
    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 2011-09-06
    • 1970-01-01
    • 2014-11-06
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多