【问题标题】:How to fit content which goes past footer i.e. overflows using CSS and Div tags?如何适应超出页脚的内容,即使用 CSS 和 Div 标签溢出?
【发布时间】:2011-05-13 10:43:24
【问题描述】:

我已经花费了数小时寻找解决方案,但在这个特定问题上找不到任何东西,所以如果已经得到解答,请原谅我。

我有一个标准的 CSS 页面,其中包含标头、导航行、左列链接、右列内容和页脚。

我已将所有内容设置为页面中心,宽度为 1024 像素。

我无法实现的是,当一列的内容比另一列长时,让两列保持相同的高度。

让我解释一下 - 两列都有一个 1px 的边框,我想一直延伸到页脚。右栏的内容要长得多,所以它会很快到达页脚,但左栏没有,所以边框停止,链接结束。

为了解决这个问题,我将 html、body、container 和两列的高度设置为 100%,如下所示:

html {
height: 100%;
}

body {
height: 100%;
}

#masthead {
width: 1024px;
height:100px;
margin-left:auto; margin-right:auto;
}

#top_nav {
width: 1024px;
height:100px;
margin-left:auto; margin-right:auto;
}

#container {
width: 1024px;
height:100%;
margin-left:auto; margin-right:auto;
}

#left_col {
width: 198px;
float: Left;
height: 100%;
border: 1px solid #FF0000;
}

#page_content {
margin-left: 200px;
width: 824px;
height: 100%;
border: 1px solid #000000;
}

#footer {
bottom: 0px;
clear: both;
width: 1024px;
height: 50px;
margin-left:auto; margin-right:auto;
border: 1px solid #000060;
}

这可行现在右栏的内容(更长)超出了页脚?并且无论我尝试什么我都无法在不影响左列边框的情况下解决此问题,即我可以使用 min-height: 100%; 来解决溢出和页脚问题,但这有封顶的副作用左列的边框回到导航链接的高度,即边框不再流到左列的底部并向下流到页脚(grrrhhh!)

这是指向页面本身的链接,您可以将其复制并粘贴到 DW 或 EW 等中以查看发生了什么: http://www.iifuture.org/downloads/testzzz.html

如果有人知道如何解决这个悖论,我很想知道!

谢谢 肖恩

【问题讨论】:

    标签: html css


    【解决方案1】:

    实际上从头开始:删除容器上的height:100%,留下col和页面内容。就是这样。

    【讨论】:

    • 当我在所有浏览器中尝试此操作时,内容是否仍流过页脚?
    • @Shaun 尝试在#container 上删除它。虽然我尝试时很奇怪,但对我来说它适用于所有浏览器
    • 好的,我已经调整了带有重复背景的原始文件,这清楚地表明了问题......它位于:iifuture.org/downloads/testzzz.html
    【解决方案2】:

    编辑(讨论后修改答案)

    This article 有帮助。

    style="background: blue url(someimage.png) repeat-y left;"
    

    将上述样式添加到container。这是一个 hack,DIV 不会增长,但背景图像会覆盖它以获得您想要的布局!

    请参考this问答选择了解更多。

    原答案

    请查看溢出属性。我能够让您的示例页面使用添加到 page_content DIV 的以下样式。

    position:absolute;overflow:auto;
    

    使用此代码,如果内容超过设置的高度,则会出现滚动条。如果您不想获得滚动条并且可以不显示超出 DIV 高度的数据,只需使用 hidden 而不是 auto。同样,要始终显示滚动条,您可以使用 scroll

    最后一个选项 visible 将使它*(mis)*表现出它现在的行为方式,即让数据增长超过 DIV 高度。请注意,DIV 没有增长,只有内容在增长。

    【讨论】:

    • 是的,我知道这个解决方案,但如果可能的话,我真的很想避免滚动条......另一种方法是设置一个 px 高度,这也可以,但我有 700 个页面高度不同,所以我打算使用 PHP 并将它们全部设置为 .inc 文件,所以我需要一个百分比解决方案 - 但我似乎找不到一个!
    • 我假设您希望容器 DIV 高度为 100%。如果您希望容器根据左列和页面内容中的内容进行扩展,正如@Guy Fawkes 所提到的,您可以简单地删除容器 DIV 上的 100% 高度。
    • 这对我来说不起作用?我尝试了很多组合,但无论我尝试什么,我要么让边框停在左栏的内容处,要么让右栏的文本(内容)流过页脚......如果不是太麻烦的话您通过电子邮件发送 .css 文件(您已将其修改为 shaun@iifuture.com,这样我就可以知道到底我做错了什么?我几乎没有头发了!
    • @Shaun 我正在使用 Chromium 浏览器,但我没有创建任何文件。我打开了您的测试 html 并使用了内置功能(我认为它称为开发人员工具(ctrl+shift+j))。打开页面 -> 右键单击​​任何 div -> 禁用容器 DIV 的高度属性。
    • 是的,我刚刚在 Chrome 中执行了此操作,但您会看到左侧列周围的红色边框(框)现在缩小为仅围绕内容而不再流到页脚(就像它所做的那样) 并且有一个问题 - 它很微妙,但是当您有很多内容时,您最不想要的就是链接下方的空白区域...
    猜你喜欢
    • 2023-03-24
    • 2012-07-02
    • 1970-01-01
    • 2011-01-17
    • 2012-12-09
    • 1970-01-01
    • 1970-01-01
    • 2022-12-07
    • 1970-01-01
    相关资源
    最近更新 更多