html - 每个 div 都需要设置高度吗?

标签 html css height

我因为精神 split 症而感到压力很大,我可能错过了一些重要但简单的事情..虽然我以前做过很多次..但现在出了问题。

所以我正在创建一个网络应用程序,我的出发点始终是

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

我的一些内部元素有一个以百分比和一些以像素为单位的设置高度。 但是,为了在我的代码中有一些结构,我设置了没有设置高度的 div。让我们设置以下情况。

HTML

<div class="wrapper">
  <div class="thisIsAStructureItem">
    <div class="innerElement">
      And just some untagged piece of text
    </div>
  </div>
</div>

CSS

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

.thisIsAStructureItem {
/* nothing, not even height */
}

.innerElement {
  height: 17.5%;
}

但在任何编辑器或浏览器中,因为我没有在第二个元素上设置特定的 (%/px) 高度,所以它显示为 0px,包括所有内部元素。

尽管这可能很愚蠢..我做错了什么?

更新:查看此 JSFiddle

这种情况使它看起来有必要设置高度,因此我的标题。随意调整到更合适的东西

上述情况是待建情况的复制品,使用精确像素(在上述部分)不是一种选择。请不要建议“使用 X 像素”。

最佳答案

innerElement 试图显示为父元素高度的 17.5%。问题是父元素没有定义高度。作为计算未定义 17.5% 的回退,div 的高度基本上默认为“自动”并假设其内容的高度,这基于字体大小、行高、填充等。

编辑:CSS 的一个很好的特性是元素样式可以从它的父元素继承。您可以添加一个结构类,它将继承其父元素的高度,这似乎是您的意图。

您甚至可以将此类添加到 body 元素,因为它的高度和宽度与 html 相同...只是不确定 HTML 元素是否可以在所有浏览器中设置样式,所以我没有这样做。

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

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

.struct {
  height: inherit;
  width: inherit;
}

.innerElement {
  height: 17.5%;
}
<div class="wrapper">
  <div class="struct"> <!-- .struct inherits height/width from .wrapper -->
    <div class="innerElement"> <!-- height calculated based on .wrapper -->
      And just some untagged piece of text
    </div>
  </div>
</div>

关于html - 每个 div 都需要设置高度吗?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/27259746/

相关文章:

jquery css 高度,有什么问题?

html - Bootstrap 3 - 如何在折叠的导航栏中正确显示按钮 (btn-navbar)?

jQuery DataTable 分页问题

css - 为什么 Safari 的默认字体跟踪/字母间距与其他浏览器不同?

javascript - 定位父 div 的最佳方式 - javascript

html - 使两个 COL Bootstrap 3 高度相同,但带有填充

css - 如何强制我的列始终延伸到页面底部?

javascript - HTML5 视频 - 在特定时间开始播放视频并播放 x 时间

html - 使用xpath获取html元素的文本内容

javascript - 使用 JS 在 HTML 中操作 SVG