【问题标题】:How to make DIV header 100% but still allow for vertical scrolling?如何使 DIV 标题 100% 但仍允许垂直滚动?
【发布时间】:2013-06-24 19:46:18
【问题描述】:

在这里寻找一些解决方案后,似乎每个人都遇到了我面临的相反问题(哈!)。这就是我想要完成的事情:我有一个页面加载时的 DIV 为 100% 宽度和 100% 高度。这样无论屏幕大小如何,我们总能获得完整的主页图像。但是,我们希望能够在其下方滚动以获取其他内容。我正处于一个我已经操纵它工作的地步,但它有问题。这是 HTML ::

<div id="ScalableImage"></div>
<div id="BlockWhite" style="height:1000px"></div>
<div id="BlockBlue1" style="height:300px"></div>
<div id="BlockBlue2" style="height:50px"></div>

您可以在此处看到“BlockWhite”的样式设置为 1000 像素高。那是因为它隐藏在“ScalableImage”后面。我不能让它在下面筑巢!!!

无论如何,这是 ScalableImage 和色块的 CSS ::

#ScalableImage {
position: absolute; 
display:block;
top:0; 
left:0; 
width:100%; 
height:100%;
max-height:900px;
background: url(/TESTING/images/Home_Slide_001.jpg) no-repeat center top fixed; 
-webkit-background-size: cover;
-moz-background-size: cover;
-o-background-size: cover;
background-size: cover;
z-index:700;
  }

#BlockBlue1 {
position:relative;
float:left;
background-color:#c5d1d1;
width:110%;
margin-left:-10px;
margin-bottom:-10px;
min-height:20px;
clear:both;
}
#BlockBlue2 {
position:relative;
float:left;
background-color:#95aab2;
width:110%;
min-height:20px;
margin-left:-10px;
margin-bottom:-10px;
clear:both;
}

#BlockWhite {
position:relative;
float:left;
background-color: #fff;
width:110%;
min-height:20px;
margin-left:-10px;
margin-bottom:-10px;
clear:both;
}

想法?

谢谢!

【问题讨论】:

  • 可以使用overflow-x:auto;
  • @WilkerIceri 好像没有效果。
  • @Yvette 这是我想要发生的事情的一个例子:: lrxd.com

标签: css html vertical-scrolling scalable


【解决方案1】:

“#ScalableImage”与“#BlockBlue1”重叠的原因是因为您的“#ScalableImage”样式中有position: absolute - 所以它被拉出布局,因此覆盖了其他元素。

要实现(我认为)您正在寻找的内容,您可能需要删除 position:absolute 样式,然后添加:

body, html{
    height:100%;
    margin:0;
}

(0 边距是为了防止浏览器渲染带有边距的 body/html 元素。)

我希望这对你有帮助。祝你好运!

(编辑)添加了一个 JSFiddle 来向您展示我所看到的:http://jsfiddle.net/BDd62/

(编辑 2)看到您的附加代码后,我想我已经确定了该空白的原因。这是因为您在“#htxt”上的上边距,在这种情况下实际上移动了它的父元素。 (你可以阅读更深入的解释here。你可以通过几种方式避免这种情况,但这里是我所做的 CSS 中的更改区域。如果这不是你想要的布局,请告诉我:

#bg {
    display:block;
    width:100%; 
    height:100%;
    max-height:900px;
    background: url(http://bwpcommunications.com/TESTING/images/Home_Slide_001.jpg) no-repeat center top fixed; 
    -webkit-background-size: cover;
    -moz-background-size: cover;
    -o-background-size: cover;
    background-size: cover;
    z-index:700;
}
#htxt {
    position:relative;
    font-family: 'Raleway';
    font-weight:bold;
    font-size: 6em;
    text-align:center;
    color:#FFF;
    width:80%;
    max-width:960px;
    line-height:100px;
    margin:0 auto 22%;
    padding:22% 0 0;
    z-index:800;
}
#hsubtxt {
    position:relative;
    font-family: 'Raleway';
    font-size: 3em;
    text-align:center;
    color:#FFF;
    width:80%;
    margin:2% auto 0;
    z-index:800;
}

希望对您有所帮助!这是您的updated JSFiddle 以查看完整代码,但我建议在完整的浏览器中运行它(因为您的布局没有针对 JSFiddle 环境的小窗口大小进行优化。

【讨论】:

  • 嗯...我明白你在说什么,但是当我删除“绝对”位置时,它不再“粘”在顶部和底部。页面顶部和 div 之间大约有 260 像素的间隙。
  • 有趣。除了列出的内容之外,您在文档中还有其他元素吗?我将您的代码复制/粘贴到一个空白的 HTML 文档中,并在那里玩弄它,直到它按规定工作。这提醒了我,你也可以去掉 top:0, left:0,因为它们不再需要了。
  • 是的。我在 z-index 900 处有一个固定菜单和徽标,在可扩展图像 div 中有文本 div。
  • 固定菜单可能是问题所在。具有 position:fixed 的元素将随窗口滚动,并且不会停留在文档的顶部...我添加了一个 JSFiddle 来向您展示我得到的内容。如果您认为它可能会有所作为,您可以提供额外的代码。
  • 没关系...这很酷!这是我完整代码的链接:: link
猜你喜欢
  • 1970-01-01
  • 1970-01-01
  • 2014-05-05
  • 1970-01-01
  • 2023-01-17
  • 2018-02-03
  • 1970-01-01
  • 1970-01-01
  • 2014-08-19
相关资源
最近更新 更多