css - 为什么子级的宽度在显示时没有扩展到父级的宽度: table-cell?

标签 css css-tables

div {
  width: 100px;
  height: 100px;
}
p {
  margin: 0px;
  padding: 0px;
  display: table-cell;
  width: 100%;
  height: 100%;
  border: 1px solid green;
}
<div>
   <p>hello</p>
 </div>

现在,这里的子元素 p 不会扩展到其父元素的宽度和 height: 100px , 为什么? 如果display: table-cell改为display: table或其他,例如block , 子元素<p>这里确实扩展到其'父级的widthheight :100px .

div {
  width: 100px;
  height: 100px;
}
p {
  margin: 0px;
  padding: 0px;
  display: table;
  width: 100%;
  height: 100%;
  border: 1px solid green;
}
<div>
   <p>hello</p>
 </div>

这里有解释操作的规则吗?

最佳答案

带有 display: table-cellp 在匿名表格行框中呈现,在匿名表格框 ( §17.2.1 Anonymous table objects ) 中, div(然后成为该匿名表格框的包含 block )。

默认情况下,表格框不会扩展到其包含 block 的宽度 ( §17.5.2 Table width algorithms: the 'table-layout' property )。对于匿名表格框、HTML table 元素以及具有 display: table 的任何其他元素来说都是如此。

关于css - 为什么子级的宽度在显示时没有扩展到父级的宽度: table-cell?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/40508579/

相关文章:

css - 链接在 Firefox 中有效,在 Chrome 中无效

html - 从一组图形设计图像创建网站

javascript - 为什么 CSS 背景属性会覆盖之前定义的实例?

html - 如何修复 Wordpress 管理栏破坏 100% 高度

javascript - 我使用 Javascript 更改 CSS,转换是即时的,而不是需要几秒钟

jquery - 奇怪的表格布局 :fixed; "bug" on WebKit

javascript - 如何创建灵活的自适应表格布局?

html - 嵌套表行在 IE 中未填充 100%

javascript - 表格单元格中的内联 CSS 元素溢出

javascript - 动态创建的表格单元格在 Firefox 32.0 中不显示