为什么html元素上的高度无效?

捕获树

<!DOCTYPE html>
<html>
<head>
  <style>
    html,
    body {
      font-size: 16px;
      width: 70vw;
      height: 40vh;
      background-color: yellow;
    }
    
    h1 {
      background-color: red;
    }
  </style>
</head>
<body>
  <h1>My First Heading</h1>
</body>
</html>

在上面的代码我设置width70vwheight40vh

我有两个问题:

  1. 为什么在我指定仅声明中使用时heighthtml,body仍然填充100%的视口高度40vhhtml,body
  2. 为什么H1元素的宽度设置为70vwhtml,body声明即使宽度是不能继承,但对于H1的高度没有被设置为40vhhtml,body申报?
Qwertiy

它实际上有效,但是在CSS中有一个棘手的地方。html获取背景,body如果背景html本身未设置,并且视口由html背景填充(这是css中子元素的唯一继承)。

此行为在CSS背景和边框模块级别3中指定

文档画布是在其上呈现文档的无限表面。[CSS2]由于没有元素对应于画布,因此为了允许画布样式,CSS会传播根元素的背景

对于其根元素是HTML HTML元素或XHTML html元素[HTML]的文档:如果根元素上的background-image的计算值是none且其背景色是透明的,则用户代理必须传播该元素的第一个HTML BODY或XHTML body子元素的背景属性。

我在html您的示例中添加了背景,您可以看到,这很好:

html, body {
  font-size: 16px;
  width: 70vw;
  height: 40vh;
  background-color: yellow;
}

html {
  background: white;
}

h1 {
  background-color: red;
}
<h1>My First Heading</h1>

我可以做的另一件事是概述-它会显示元素实际在何处结束:

html, body {
  font-size: 16px;
  width: 70vw;
  height: 40vh;
  background-color: yellow;
  outline: 1px dotted blue;
  outline-offset: -1px;
}

h1 {
  background-color: red;
}
<h1>My First Heading</h1>

一个更有趣的情况:

html {
  width: 50vw;
  height: 50vh;
}

body {
  margin: 40vh 0 0 40vw;
  width: 30vw;
  height: 30vh;
  background: linear-gradient(45deg, red, blue);
}

html, body {
  border: 8px solid;
}

本文收集自互联网,转载请注明来源。

如有侵权,请联系[email protected] 删除。

编辑于
0

我来说两句

0条评论
登录后参与评论

相关文章

来自分类Dev

为什么jQuery的元素高度返回null?

来自分类Dev

为什么 box-sizing 不适用于 canvas 元素上的宽度/高度属性?

来自分类Dev

为什么在输入文本html元素上发生错误?

来自分类Dev

为什么要在<html>元素上设置零边距?

来自分类Dev

为什么背景颜色设置为整个文档而不是HTML元素高度的100px?

来自分类Dev

为什么在文本换行时带权重的textview的高度无效?

来自分类Dev

为什么表单在FormView上无效?

来自分类Dev

为什么当父元素具有最小高度值但没有高度值时,子元素上的height:100%不适用?

来自分类Dev

为什么无效的HTML起作用?

来自分类Dev

如果绝对位置是相对于HTML的,那么为什么更改HTML的高度不会影响绝对位置元素的高度?

来自分类Dev

为什么内联元素在浮动时会接受宽度和高度?

来自分类Dev

为什么<img>是内联元素时要保持高度?

来自分类Dev

为什么Razor在html元素上设置条件样式的方式总是html编码不正确

来自分类Dev

为什么setState throw Objects作为React子元素无效?

来自分类Dev

大写的 React Element 抛出元素类型无效——为什么?

来自分类Dev

为什么网页上没有显示高度和宽度?

来自分类Dev

为什么调用笔画会导致在HTML画布上绘制此元素?

来自分类Dev

为什么 html 元素会被剪裁

来自分类Dev

为什么警报显示在html元素之前

来自分类Dev

为什么 html 元素未定义?

来自分类Dev

为什么 html 和 body 标签的高度不同

来自分类Dev

为什么我的HTML表格占用的高度超过了必要?

来自分类Dev

为什么Day()在无效输入上返回30?

来自分类Dev

为什么绝对定位元素显示在静态元素上?

来自分类Dev

为什么 push() 无效?

来自分类Dev

为什么表格无效?

来自分类Dev

为什么* a {...}是间接无效的?

来自分类Dev

为什么Visualforce页面需要无效的HTML?(有时)

来自分类Dev

为什么双连字符在HTML注释中无效?

Related 相关文章

  1. 1

    为什么jQuery的元素高度返回null?

  2. 2

    为什么 box-sizing 不适用于 canvas 元素上的宽度/高度属性?

  3. 3

    为什么在输入文本html元素上发生错误?

  4. 4

    为什么要在<html>元素上设置零边距?

  5. 5

    为什么背景颜色设置为整个文档而不是HTML元素高度的100px?

  6. 6

    为什么在文本换行时带权重的textview的高度无效?

  7. 7

    为什么表单在FormView上无效?

  8. 8

    为什么当父元素具有最小高度值但没有高度值时,子元素上的height:100%不适用?

  9. 9

    为什么无效的HTML起作用?

  10. 10

    如果绝对位置是相对于HTML的,那么为什么更改HTML的高度不会影响绝对位置元素的高度?

  11. 11

    为什么内联元素在浮动时会接受宽度和高度?

  12. 12

    为什么<img>是内联元素时要保持高度?

  13. 13

    为什么Razor在html元素上设置条件样式的方式总是html编码不正确

  14. 14

    为什么setState throw Objects作为React子元素无效?

  15. 15

    大写的 React Element 抛出元素类型无效——为什么?

  16. 16

    为什么网页上没有显示高度和宽度?

  17. 17

    为什么调用笔画会导致在HTML画布上绘制此元素?

  18. 18

    为什么 html 元素会被剪裁

  19. 19

    为什么警报显示在html元素之前

  20. 20

    为什么 html 元素未定义?

  21. 21

    为什么 html 和 body 标签的高度不同

  22. 22

    为什么我的HTML表格占用的高度超过了必要?

  23. 23

    为什么Day()在无效输入上返回30?

  24. 24

    为什么绝对定位元素显示在静态元素上?

  25. 25

    为什么 push() 无效?

  26. 26

    为什么表格无效?

  27. 27

    为什么* a {...}是间接无效的?

  28. 28

    为什么Visualforce页面需要无效的HTML?(有时)

  29. 29

    为什么双连字符在HTML注释中无效?

热门标签

归档