html - 表中的 BLOCK 元素

标签 html css

有了这种 CSS 和 HTML 的组合,为什么 <header>HEADER</header> 是上面呈现 <nav>NAVIGATION</nav>

#wrapper { display: table; }
header   { display: table-header-group; }
<div id="wrapper">
  <nav>NAVIGATION</nav>
  <header>HEADER</header>
</div>

最佳答案

<nav>元素有 display:block它是 display:table 元素的直接子元素,因此布局引擎在其周围生成“匿名包装盒”以强制其符合表格格式模型。同样,<header> 中的裸文本节点元素,其中有 display:table-header-group , 被包裹起来。生成的“框树”与您在不使用 CSS 的情况下编写此 HTML 相同:

<table>
<tbody><tr><td><div>NAVIGATION</div></td></tr></tbody>
<thead><tr><td><div>HEADER</div></td></tr></thead>
</table>

还有一个 <table>指定显示其 <thead> 的内容首先,然后是 <tbody> , 所以你得到 HEADER 然后是 NAVIGATION。

参见 layout-internal display types 中关于“CSS3 Display”的讨论规范。示例 1 特别描述了与此非常相似的内容。

关于html - 表中的 BLOCK 元素,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/37688452/

相关文章:

javascript - Braintree 的 Sandbox PayPal 集成(使用 JS 和 PHP)

asp.net - 将两个元素对齐在同一行

javascript - 在 Rails 中的 Javascript 和 Sass 之间共享数据的最佳方式?

html - CSS Hover 只在文本上?

javascript - 如何在不损失性能的情况下不断移动 SVG 路径

javascript - 将 select2.js 与多个选择 optgroup 和 knockoutJS 一起使用

css - 如何在没有 float 的情况下忽略元素高度?

html - 如何让我选择的标签改变颜色?

javascript - 使用 jQuery 或 Javascript 动态调整具有动态内容的 iFrame

jquery - Easy Slider jQuery 插件使用 CSS 将数字按钮居中