当前位置: 首页 > 面试题库 >

如果使用HTML5文档类型,为什么不能将div的高度设置为100%?如何获得100%的高度

阳福
2023-03-14
问题内容

我正在为一个非常简单的库webapp进行布局排序,但是当我使用HTML5
doctype声明时,我的某些div的高度(即100%)会缩小,而我似乎无法保持饱满他们使用CSS进行备份。

  • 如果我删除HTML5 doctype声明,则一切都如我所愿,但我确实想使用正确的HTML5 doctype声明。
  • 如果我将doctype设置为HTML5并且未进行任何更改,则包含照片的div和页脚div将不可见,可能是因为它们的高度为0px。
  • 如果我将doctype设置为HTML5并使其body { height: 100px }.container { height: 100px }.container { height: 100% }变为可见,但我需要的是全高而不是像素高度。
  • 如果我尝试执行与上述相同的操作,但body { height: 100% }照片和页脚div不再可见。

我需要怎么做才能使其具有100%的高度,以便我的照片和页脚div达到全高?


问题答案:

仅当父元素具有定义的高度(即,不是的值)时auto。如果高度为100%,则还必须定义父级的父级高度。这可以一直到html根元素。

因此,将htmlbody元素的高度100%以及您希望首先拥有的元素的每个单个祖先元素设置为100% height

请看以下示例,使其更清晰:

html, body, .outer, .inner, .content {

  height: 100%;

  padding: 10px;

  margin: 0;

  background-color: rgba(255,0,0,.1);

  box-sizing: border-box;

}


<div class="outer">

  <div class="inner">

    <div class="content">

      Content

    </div>

  </div>

</div>

如果我不给100%的钱,这是行不通height的-say html元素:

body, .outer, .inner, .content {

  height: 100%;

  padding: 10px;

  margin: 0;

  background-color: rgba(255,0,0,.1);

  box-sizing: border-box;

}


<div class="outer">

  <div class="inner">

    <div class="content">

      Content

    </div>

  </div>

</div>

… 要么 .inner

html, body, .outer, .content {

  height: 100%;

  padding: 10px;

  margin: 0;

  background-color: rgba(255,0,0,.1);

  box-sizing: border-box;

}


<div class="outer">

  <div class="inner">

    <div class="content">

      Content

    </div>

  </div>

</div>


 类似资料:
  • 我正在为一个非常简单的图库webapp整理布局,但是当我使用HTML5 doctype声明时,我的一些div(100%)的高度会立即缩小,而且我似乎无法使用CSS使它们丰满起来。 我的HTML在https://dl.dropbox.com/u/16178847/eyewitness/b/index.htmlcss在https://dl.dropbox.com/u/16178847/eyewitne

  • 问题内容: 我正在尝试使文本的高度为100%,但它不起作用。 它只是成为的100%。 有什么办法让它跟随div的高度吗? 该高度是整个页面的4%,我wan’t文本跟随它,当你调整大小/分辨率的变化。 问题答案: 为了获得想要的结果,我必须使用以下代码: 谢谢joshuanhibbert @ css-tricks的帮助!

  • 问题内容: 我希望轮播DIV(s7)扩展到整个屏幕的高度。我不知道为什么它不成功。 问题答案: 为了使百分比值适合身高,必须确定父母的身高。唯一的例外是 root 元素,它可以是百分比高度。。 因此,您已将除之外的所有元素赋予了高度,因此您应该添加以下内容: 而且您的代码应该可以正常工作。

  • 问题内容: 我有一个包装器div,其中两个容器彼此相邻。在此容器上方,我有一个包含我的标头的div。包装div必须为100%减去标题的高度。标头约为60像素。这是固定的。所以我的问题是:如何将包装div的高度设置为100%减去60像素? 问题答案: 这是一个正常工作的CSS,已在Firefox / IE7 / Safari / Chrome / Opera下进行了测试。 w3c尚未批准“ over

  • 问题内容: 我正在尝试扩展一些以填充屏幕,但是我很挣扎。我已经解决了这个jsfiddle的问题。 我真正想知道的是,当其父项具有相同的属性并且会扩展时,为什么100%的不会扩展到那个高度(或根本不扩展)? 问题答案: CSS 2.1规范涵盖了该问题: < 百分比> 指定百分比高度。相对于生成的盒子的包含块的高度计算百分比。如果未明确指定包含块的高度(即,它取决于内容的高度),并且该元素的位置不是绝

  • 问题内容: 这是HTML: 这是CSS: 使用Chrome开发人员工具检查后,内部div的高度为0px。 我如何强制其为父div高度的100%? 问题答案: 为了使高度基于其内容并基于其高度,使两个元素都绝对定位。 可以在css height属性的规范中找到更多详细信息,但本质上,如果的height为,则必须忽略height , 除非_绝对定位。然后,高度将为0, _除非 将其自身绝对定位。 但是