流体元素和溢出问题

时间:2009-04-06 20:13:28

标签: javascript html css fluid

所以这是我遇到的一个残障。

我正在设计......事情。它将自身调整为浏览器窗口,顶部有一些控件,底部附近有一个相当大的列表。无论如何,它基本上是一个用浏览器窗口大小的表格单元格,其大小是文档大小 - 高度为130px,文档大小为50px宽度。我想要它做的是,当该单元格内的东西列表大于单元格时,它将使用css的overflow:auto来滚动。

问题在于,我无法做到这一点,只能滚动整个文档。目前,除了valign:top之外,单元格没有属性,并且它中有一个div(列表元素被写入),并且它设置为overflow:auto。但是,当列表变长时,它只是扩展整个文档。

我不想给它一个静态大小,因为它与页面一致。

有什么想法吗?

谢谢! -Dave

5 个答案:

答案 0 :(得分:1)

我不确定我是否理解正确,但这是一个可以给你创意的尝试。

<head>
<title>Test</title>
<style>
div.outer {
    background-color: red;
    position: absolute;
    top: 40px; 
    bottom: 40px;
    left: 40px;
    right: 40px;
}
div.inner {
    position: absolute;
    top: 0; 
    bottom: 0;
    left: 0;
    right: 0;
    overflow: auto;
    background-color: aqua;
}
</style>
</head>

<body>

<div class="outer">
<div class="inner">
On the Insert tab, the galleries include items that are designed to coordinate with the overall look of your document. You can use these galleries to insert tables, headers, footers, lists, cover pages, and other document building blocks. When you create pictures, charts, or diagrams, they also coordinate with your current document look.
You can easily change the formatting of selected text in the document text by choosing a look for the selected text from the Quick Styles gallery on the Home tab. You can also format text directly by using the other controls on the Home tab. Most controls offer a choice of using the look from the current theme or using a format that you specify directly.
To change the overall look of your document, choose new Theme elements on the Page Layout tab. To change the looks available in the Quick Style gallery, use the Change Current Quick Style Set command. Both the Themes gallery and the Quick Styles gallery provide reset commands so that you can always restore the look of your document to the original contained in your current template.
</div>
</div>

</body>

答案 1 :(得分:0)

buti-oxa的解决方案非常好,但在Internet Explorer中不起作用。 对于跨浏览器解决方案,您需要为包含列表的div指定固定高度。您不能仅使用css来执行此操作,因为要分配的高度取决于浏览器窗口的高度。 但是你可以使用一个简单的javascript函数来动态地为div指定高度。 这是一个使用jQuery的例子:

function resizeDiv(){
    var h = $(window).height(); //maybe the window height minus the header and footer height...
    $("#yourDivId").css("height", h + "px");
}

您应该在加载页面时以及当用户调整窗口大小时调用此函数:

$(document).ready(function(){

    resizeDiv();

    $(window).resize(function(){
        resizeDiv();
    });

 });

您可以在我发布的此演示页面中看到此操作(调整大小窗口以进行测试): http://www.meiaweb.com/test/BMS_DM_NI/

答案 2 :(得分:0)

如果我没有错,你的内容只是文本,你可以添加wrap属性虽然这在firefox中不起作用你可以在你的文本中添加wbr

答案 3 :(得分:0)

我认为你应该考虑流畅的布局设计模式。

一些提示:

  1. MediaQueries
  2. 使用代替固定值,例如 px

答案 4 :(得分:-1)

我认为iFrame会有所帮助。将您的“东西”放入基本网址,然后使用带有iFrame的其他网页加载它。当“东西”的大小变得疯狂时,会出现滚动条,但您的外页不受影响。

旧的时尚框架也应该有效,但iFrames更有趣......