【问题标题】:Place div below element with fixed position and 100% height将 div 放置在具有固定位置和 100% 高度的元素下方
【发布时间】:2015-01-09 18:45:40
【问题描述】:

我有两个 div:#lookbookHeader#introContent#lookbookHeader 有一个视频,里面有 position: fixedheight: 100%height: auto,这是我从 this tutorial 关注的。我希望#introContent 低于#lookbookHeader,无论高度如何,正如您在this page 上看到的那样。我正在尝试创建一个页面,当页面加载时视频是完整的视口,您可以向下滚动以查看下面的其他内容。

我已经在这两个元素上尝试了定位、浮动和显示的所有组合,试图让它发挥作用,但我就是做不到!目前#lookbookHeader 没有样式,因为我对其应用什么似乎并不重要,因为当我应用固定位置时,视频样式会覆盖它。如果我没有固定在视频上,那么它的宽度/高度就不能正确缩放或调整大小。我错过了什么?

我知道当页面加载时我可以使用 jQuery 或 JavaScript 来获得 #lookbookHeader 的高度,但我想知道是否有办法只使用 CSS 来做到这一点。你可以看到页面here

我已经查看了 SO such as this one 上的其他帖子,但似乎都引用了具有设定高度的固定元素,而这里不是这种情况。

HTML

            <div id="lookbookHeader">
                <video autoplay poster="http://lcoawebservices.com/assets/lp_stainless_SliderStop_5.jpg" id="bgvid">
                    <source src="http://lcoawebservices.com/assets/lp_stainless_Transition_5.webm" type="video/webm">
                    <source src="http://lcoawebservices.com/assets/lp_stainless_Transition_5.mp4" type="video/mp4">
                </video>
                <div id="headerContentContainer">
                    <h1>Lookbook: Spring 2015</h1>
                    <div class="initial-arrow-small"></div>
                </div>
            </div>
        </div>
        <div id="introContent">
            <h2>Bienvenue</h2>
            <p>Lorem ipsum dolor sit amet</p>
            <div class="block red">one</div>    
            <div class="block blue">two</div>   
            <div class="block yellow">three</div>   
            <div class="block green">four</div> 
        </div>

CSS

    #introContent {
      max-width: 100%;
      height: auto;
      background-color: #fff;
    }
    #lookbookHeader video#bgvid {
      position: fixed;
      right: 0;
      bottom: 0;
      min-width: 100%;
      min-height: 100%;
      width: auto;
      height: auto;
      z-index: -100;
      background: url(http://lcoawebservices.com/assets/lp_stainless_SliderStop_5.jpg) no-repeat;
      background-size: cover;
      display: block;
    }

【问题讨论】:

  • 据我所知,CSS 没有任何问题。当我扩展您的内容以使页面可滚动时,它的行为方式与您的示例网站相同。视频在后台播放,滚动只会将内容放在视频的顶部。检查这个 JSFiddle:jsfiddle.net/ek13geka
  • 我应该更清楚 - 当页面最初加载时,我希望当前位于视频顶部的所有内容都位于视频下方,除了 Lookbook 2015 副本和箭头。我正在尝试做上面链接的缅因州啤酒网站上的内容;页面加载时,概要内容位于视频下方。

标签: html css fullscreen


【解决方案1】:

添加顶部margin 来完成此操作。首先,您需要在 body 样式中包含 html

html,body { //add html
  width: 100%;
  height: 100%;
  font-family: Helvetica, Arial, sans-serif;
  font-size: 11px;
  margin: 0;
  padding: 0;
}

然后将height:100% 添加到.container(因为它是孩子)。然后您可以在.introContent 上设置高度和边距。此外,您在 .introContent 内还有未清除的浮动元素。您可以通过添加 overflow: hidden 来纠正它:

#introContent {
  min-height: 100%; //add min-height
  max-width: 100%;
  height: auto;
  background-color: red; //changed so you can see the container better
  overflow: hidden; //add to clear floats
  margin: 50% 0 0; //add margin from top
}

FIDDLE

更新

我有一个更好的解决方案。有时你只是想多了。只需在内容上方添加一个空白div,如下所示:

<div class="spacer"></div>
<div id="introContent">
   ....

并将其设置为:

.spacer{
   height: 100%;
   width: 100%;
}

这将占据屏幕的高度并将您的内容向下压

BETTER FIDDLE

【讨论】:

  • 谢谢!两种解决方案都有效。我非常感谢您的帮助和解释。
  • 不客气。乐意效劳。选择第二个,它会更可靠
猜你喜欢
  • 2011-09-28
  • 1970-01-01
  • 2016-01-28
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 2015-10-29
  • 1970-01-01
相关资源
最近更新 更多