Html 什么打破了这张桌子的布局?
使用CSS的表格、表格行和表格单元格div的简单内容布局:Html 什么打破了这张桌子的布局?,html,css,Html,Css,使用CSS的表格、表格行和表格单元格div的简单内容布局: <div style="display:table-cell; border:1px solid blue"> some content <!-- this line wrappend in <p> tag in next example --> <p>some content</p> ... </div> 一些内容 一些内容 ...
<div style="display:table-cell; border:1px solid blue">
some content <!-- this line wrappend in <p> tag in next example -->
<p>some content</p>
...
</div>
一些内容
一些内容
...
上面的示例中,左侧单元格的内容放在段落(第一行)中:
如您所见,将标签放入左单元格后,右单元格向下移动。
我是否使用
或
标记并不重要。假设它确实更改了行高度,并且相邻单元格中的第一行与它对齐
有人能解释这种行为吗。如何防止相邻单元格移动?这似乎与浏览器添加到
标记的页边距有关自动尝试此
div[style*="table-cell"] p:first-child {
margin: 0;
}
这似乎与浏览器添加到
标记的边距有关。请自动尝试以下操作
div[style*="table-cell"] p:first-child {
margin: 0;
}
它采用“表格单元格”的浏览器默认行为,垂直对齐为继承、继承、中间。(奇怪的是,在你的页面底部) 只需在CSS中添加“
vertical align:top
”就可以肯定地解决您的问题。
例如,Firefox[用户代理html.css]:
tr {
display: table-row;
vertical-align: inherit;
}
tbody {
display: table-row-group;
vertical-align: middle;
}
thead {
display: table-header-group;
vertical-align: middle;
}
tfoot {
display: table-footer-group;
vertical-align: middle;
}
/* for XHTML tables without tbody */
table > tr {
vertical-align: middle;
}
td {
display: table-cell;
vertical-align: inherit;
text-align: inherit;
padding: 1px;
}
它采用“表格单元格”的浏览器默认行为,垂直对齐为继承、继承、中间。(奇怪的是,在你的页面底部) 只需在CSS中添加“
vertical align:top
”就可以肯定地解决您的问题。
例如,Firefox[用户代理html.css]:
tr {
display: table-row;
vertical-align: inherit;
}
tbody {
display: table-row-group;
vertical-align: middle;
}
thead {
display: table-header-group;
vertical-align: middle;
}
tfoot {
display: table-footer-group;
vertical-align: middle;
}
/* for XHTML tables without tbody */
table > tr {
vertical-align: middle;
}
td {
display: table-cell;
vertical-align: inherit;
text-align: inherit;
padding: 1px;
}
“对于表格数据,表格不是更好吗?”@johncode可能是的,但我遇到了这个问题,无法解释这种奇怪的行为。我不能把它当作悬而未决的谜团。@johncode它们也适用于“等高”设计。表格不是更适合表格数据吗?@johncode可能是的,但我遇到了这个问题,无法解释这种奇怪的行为。我不能把它当作一个悬而未决的谜。@johncode它们也适用于“等高”设计。尝试过,但Firefox忽略了这一点。@Milche patren你的解决方案是好的,你的解释是错误的。基线对齐与文本对齐有关。。。不总是和底部一样。也。。。底部或基线不是表格单元格的默认对齐方式,而是中间对齐方式。此外,如果在包含表格的表格单元格周围绘制一个框,您将看到它与另一个单元格对齐。。。哦,我不能对你的帖子发表评论。@davidunricwebkit是针对Safari/Chrome的,所以这个特定的答案不适用于所有浏览器。相反,只要将单元格中第一个元素的边距顶部设置为0(如果希望对齐)。我已经更正了我的答案,可以在其他浏览器中使用。@upful-Right,它不是底部,它是继承的(firefox和gChrome检查)。尝试过,但firefox忽略了这一点。@Milche Patren您的修复是好的,您的解释是错误的。基线对齐与文本对齐有关。。。不总是和底部一样。也。。。底部或基线不是表格单元格的默认对齐方式,而是中间对齐方式。此外,如果在包含表格的表格单元格周围绘制一个框,您将看到它与另一个单元格对齐。。。哦,我不能对你的帖子发表评论。@davidunricwebkit是针对Safari/Chrome的,所以这个特定的答案不适用于所有浏览器。相反,只要将单元格中第一个元素的边距顶部设置为0(如果希望对齐)。我已经更正了我的答案,可以在其他浏览器中使用。@upful正确,它不是底部,而是继承的(firefox和gChrome检查)。感谢您展示一个工作示例。采用浏览器默认的“表格单元格”行为是否有文档记录?哼?一种默认浏览器行为的图表,这很好,但它是特定于供应商的。浏览器可以将其从一个版本更改为另一个版本,等等。如果它存在,我想知道。感谢显示一个工作示例。采用浏览器默认的“表格单元格”行为是否有文档记录?哼?一种默认浏览器行为的图表,这很好,但它是特定于供应商的。浏览器可以将其从一个版本更改为另一个版本,等等。如果它存在,我想知道。