Html 填充表格行 表行填充问题 tr{ 填充:20px; } 乱数假文

Html 填充表格行 表行填充问题 tr{ 填充:20px; } 乱数假文,html,css,html-table,row,padding,Html,Css,Html Table,Row,Padding,苏打粉发酵液。苏打鱼苗 内克·弗林吉亚·费吉亚特。这是一个很好的例子。在hac habitasse 台词。Nullam Elite enim,孕妇欧盟布朗迪特ut,佩伦茨克nec turpis。Proin faucibus,sem sed 临时拍卖人,佩伦茨克知识产权法,但所有知识产权法。我的乌尔纳万岁 马蒂斯·埃吉特,我是智者。维韦拉无侵权品库拉索酒店 亨德雷特。爱神之城。无舌。毛里斯·洛博蒂斯·坦帕斯·努拉 权杖 下面是填充物的外观。查看内部td如何不受影响。解决办法是什么? 使用td填充

苏打粉发酵液。苏打鱼苗 内克·弗林吉亚·费吉亚特。这是一个很好的例子。在hac habitasse 台词。Nullam Elite enim,孕妇欧盟布朗迪特ut,佩伦茨克nec turpis。Proin faucibus,sem sed 临时拍卖人,佩伦茨克知识产权法,但所有知识产权法。我的乌尔纳万岁 马蒂斯·埃吉特,我是智者。维韦拉无侵权品库拉索酒店 亨德雷特。爱神之城。无舌。毛里斯·洛博蒂斯·坦帕斯·努拉 权杖

下面是填充物的外观。查看内部td如何不受影响。解决办法是什么?

使用td填充

诀窍是在
td
元素上使用填充,但对第一个元素例外(是的,这很有黑客味,但有时你必须遵守浏览器的规则):

第一个孩子得到了较好的支持:

通过使用
tr:first child td
,可以对水平填充使用相同的推理

或者,使用排除第一列。不过,目前对此的支持还没有那么好

td {
  padding-top:20px;
  padding-bottom:20px;
  padding-right:20px;   
}

td:first-child {
  padding-left:20px;
  padding-right:0;
}
在和规范中,填充可用于所有元素,包括
。然而,在和规范中,表行(
)的填充支持已被删除。我从来没有发现这个恼人的更改背后的原因,它也会影响页边距属性和其他一些表元素(页眉、页脚和列)


更新:2015年2月,在
www-style@w3c.org
邮件列表讨论了如何为表行添加填充和边框支持。这将标准的框模型也应用于表行和表列元素。这是允许的。该线程似乎暗示CSS标准中不存在表行填充支持,因为它会有复杂的布局引擎。在2014年9月30日的CSS基本框模型中,所有元素都存在填充和边框属性,包括表行和表列元素。如果它最终成为W3C推荐,您的html+css示例最终可能会在浏览器中正常工作。

这是一篇非常古老的文章,但我认为我应该发布我最近遇到的类似问题的解决方案

回答:我解决了这个问题,将tr元素显示为块元素,即为tr元素指定display:block的CSS。您可以在下面的代码示例中看到这一点


tr{
显示:块;
垫底:20px;
}
桌子{
边框:1px纯红;
}
乱数假文
苏打粉发酵液。苏打水库拉比图尔·里苏斯坐在阿梅特·内克·弗林吉亚(amet neque fringilla feugiat)旁边。这是一个很好的例子。在hac habitasse Plateum,一句名言。孕妇
欧盟布朗迪特ut,佩伦茨克nec turpis。普罗恩·福西布斯,sem-sed-TEMPER-auctor,ipsum velit pellentesque lorem,ut semper lorem eros ac eros。我的生命,我的生命,我的智慧。维韦拉湖无侵权人酒店
luctus vitae euismod purus hendrerit。爱神之城。无舌。毛里斯·洛博蒂斯·坦普斯无节杖。



此文本位于TABLE元素的下方和外部。请注意,由于为tr元素指定了底部填充,红色表格边框是如何向下推到段落末尾下方的。这里的关键点是tr元素必须显示为块
以便在tr级别应用填充。
选项1

您还可以通过向行(tr)添加透明边框来解决此问题,如下所示

HTML

就像一个符咒,虽然如果你需要规则的边界,那么这种方法将不幸地不起作用

选项2

由于行作为单元分组的一种方式,正确的方法是使用

tr {
    border-top: 12px solid transparent;
    border-bottom: 12px solid transparent;
}

您可以简单地将此样式添加到表中

表格{
边界间距:15px;
}
在元素之前添加一个:

table {
    border-collapse: inherit;
    border-spacing: 0 10px;
}

在“响应”表格的上下文中,这对我来说很重要,即
td{display:table row;}

使用
而不是表格所显示的数据是表格,应该在表格中唯一的问题是,如果tr中有两个td,则两个td之间会有填充,我不想要。我会使用:not运算符排除单个项目。像tr:not(#first_row)@congizfrostclaw确实,那会更为体贴。但是支持没有那么好。哦,你可能是对的。我不知道,只是有理由相信:not运算符是一个更受支持的运算符,但再次强调,我只在Chrome中测试:D这不是“黑客”,这正是这些选择器的设计for@spinners这是哈奇。它不适用于RTL布局。创建dummy
s。我也会非常感兴趣的原因!这完全与表格布局通常的工作方式有关。如果您这样做,您不应该使用表格-使用常规的
div
。这应该是基于问题的公认答案。向列(td)添加填充并不总是直接的(也可能是标题(th))。这更准确地回答了这个问题。通常的假设是OP可以修改HTM,但由于visual Builder和CMS具有如此突出的地位,情况往往并非如此。上伏通
<table>
    <tr> 
         <td>1</td>
    </tr>
    <tr> 
         <td>2</td>
    </tr>
</table>
tr {
    border-top: 12px solid transparent;
    border-bottom: 12px solid transparent;
}
table {
    border-collapse: inherit;
    border-spacing: 0 10px;
}
tr::before {
  content: "";
  margin-left: 10px;
}