【问题标题】:Why does this div refuse to expand to 100% height?为什么这个 div 拒绝扩展到 100% 的高度?
【发布时间】:2015-08-19 01:02:53
【问题描述】:

我正在做一个 Angular 项目。我有骨架,我正在尝试设计由“ng-view”插入的部分。当我尝试在 about id 上设置背景图像(我为问题切换到颜色)时,它会自动将该 div 设置为 0px,即使我将高度设置为 100%。 html/body 高度设置为 100%,但它仍然不起作用。我已经尝试了许多类似问题的答案,但仍然无法正常工作。为什么是这样?顺便说一句,我正在使用一个部分,因为我正在制作一个滚动网站。所以当我说 div 时,我的意思是 section。

注意:例如,如果我将高度设置为 500 像素,它就会显示出来。但是百分比不起作用。

主页-

<body ng-app="jayPortfolio" ng-controller="mainController as main">

  <!-- NAVBAR -->
  <header id="main-header">
    <nav class="navbar navbar-inverse navbar-fixed-top">
      <div class="container">
        <div class="navbar-header">
          <button type="button" class="navbar-toggle collapsed" data-toggle="collapse" data-target="#navbar" aria-expanded="false" aria-controls="navbar">
          <span class="sr-only">Toggle navigation</span>
          <span class="icon-bar"></span>
          <span class="icon-bar"></span>
          <span class="icon-bar"></span>
          </button>

          <a class="navbar-brand" href="#">JAY</a>
        </div>

        <div id="navbar" class="navbar-collapse collapse">
          <ul class="nav navbar-nav navbar-right">
            <li><a href="#contact">About</a></li>
            <li><a href="#contact">Portfolio</a></li>
            <li><a href="#contact">Experience</a></li>
            <li><a href="#contact">Contact</a></li>
          </ul>
        </div>
      </div>
    </nav>
  </header>

  <!-- LOAD OTHER PAGES HERE -->
  <main id="main-pages">
   <div ng-view></div>
  </main>
</body>

部分-

<section id="about">    
</section>

CSS-

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

#about {
  height: 100%;
  width: 100%;
  /*background-image: url('../../images/jay-ocean.jpg');*/
  background-color: green;
  background-repeat: no-repeat;
  position: relative;
}

回答-

命名为 div ng-view,#ng-view,而不是更新了下面的 CSS。正如阿列克谢的回答所见。

html, body, main, #ng-view {
  height: 100%;
  width: 100%;
  margin: 0;
}

【问题讨论】:

  • 如果排除 &lt;div ng-view&gt;&lt;/div&gt; 容器,您的代码可以正常工作:jsfiddle.net/4wovvt6p。因此,也许您应该考虑将一些 CSS 应用于包含 div 以使其也 100% 高度。

标签: html css


【解决方案1】:

https://jsfiddle.net/4wovvt6p/1/

正如我在评论中提到的,您将height:100% 应用于正文和部分,但未将其应用于包含div。默认情况下,一个 div 从 0px 开始并根据内容展开,如果你的内容是 100% 那么它是 0px 的 100%,因此仍然是 0。

【讨论】:

  • 是的,它做到了。哑巴俯瞰。最终将 main 和 #ng-view(我给它的 ID)添加到与 html 和 body 相同的高度/宽度样式,并且效果很好。非常感谢!
  • 很高兴它成功了,您能否将答案标记为已接受,以便其他人知道该问题已得到解答。
  • 没问题。还有 1 分钟 :)
【解决方案2】:

据我了解,您不能根据 % 设置 CSS 对象的高度,我在 CSS 方面相对较差,所以我可能是错的,尽管我记得几个月前我遇到同样问题时的结果.

【讨论】:

  • 对不起,我应该改写一下,我的评论只有当它是 时,否则它将是 100% 的父对象。 (如果它是您的顶级 div 将是主体,并且由于无法设置,您不能执行 100% 的浏览器窗口,我相信这是 OP 的意图)如果这仍然是错误的,我支持已更正!
  • 啊,是的,100% 对身体没有多大作用。
猜你喜欢
  • 2011-10-26
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 2011-01-11
  • 1970-01-01
  • 2012-08-17
相关资源
最近更新 更多