这是否可以通过CSS实现?

我在努力

tr.classname {
  border-spacing: 5em;
}

但没有用。也许我做错了什么?


当前回答

你可以在桌子上做一些事情:

table {
  border-collapse: separate;
  border-spacing: 0 15px;
}

table selected:因为它将选择所有表,所以如果您想选择单个表,也可以这样做

<table class="res">

</table>

对于上面的html,您可以这样做,请注意,对于特定的表,如果需要,可以使用下面的方法。

.res {
      border-collapse: separate;
      border-spacing: 0 15px;
    }

参考:https://www.w3docs.com/snippets/css/how-to-create-space-between-rows-in-the-table.html

其他回答

您需要在td元素上使用填充。像这样的东西应该会奏效。当然,您可以使用顶部填充而不是底部填充获得相同的结果。

在下面的CSS代码中,大于号表示填充仅应用于td元素,这些元素是带有spaceUnder类的tr元素的直接子元素。这将使使用嵌套表成为可能。(示例代码中的单元格C和D)我不太确定浏览器是否支持直接子选择器(想想IE 6),但它不应该破坏任何现代浏览器中的代码。

/*对类spaceUnder的tr元素的直接子级td元素应用填充*/tr.spaceUnder>td{衬垫底部:1毫米;}<表><tbody><tr><td>一个</td><td>B级</td></tr><tr class=“spaceUnder”><td>C类</td><td>D)</td></tr><tr><td>电子</td><td>F级</td></tr></tbody></table>

这应该有点像这样:

+---+---+
| A | B |
+---+---+
| C | D |
|   |   |
+---+---+
| E | F |
+---+---+
tr { 
    display: block;
    margin-bottom: 5px;
}

来自Mozilla开发者网络:

border-spacing CSS属性指定相邻单元格边界之间的距离(仅适用于分隔边界模型)。这相当于表示HTML中的cellspacing属性,但可以使用可选的第二个值来设置不同的水平和垂直间距。

这最后一部分经常受到监督。例子:

.your-table {
    border-collapse: separate; /* allow spacing between cell borders */
    border-spacing: 0 5px; /* NOTE: syntax is <horizontal value> <vertical value> */

更新

我现在明白了OP希望特定的、单独的行具有增加的间距。我添加了一个带有tbody元素的设置,它可以在不破坏语义的情况下实现这一点。然而,我不确定是否所有浏览器都支持它。我是用Chrome制作的。

下面的例子是为了展示如何让它看起来像是一个单独的表格,充满了css的甜蜜。也给了第一排更多的空间与车身设置。请随意使用!

支持通知:IE8+、Chrome、Firefox、Safari、Opera 4+

.间距表{字体系列:'Helvetica','Arial',无衬线;字体大小:15px;边界塌陷:分离;表格布局:固定;宽度:80%;边框间距:0 5px;/*这是最终的解决方案*/}.间距表th{文本对齐:左侧;填充:5px 15px;}.间距表td{边框宽度:3px 0;宽度:50%;边框颜色:深红色;边框样式:实心;背景色:红色;颜色:白色;填充:5px 15px;}.间距表td:第一个子项{边框左侧宽度:3px;边界半径:5px 0 0 5px;}.space table td:最后一个子级{边框右侧宽度:3px;边界半径:0 5px 5px 0;}.间距表thead{显示:表格;表格布局:固定;宽度:100%;}.间距表tbody{显示:表格;表格布局:固定;宽度:100%;边框间距:0 10px;}<table class=“spacing table”><thead><tr>主唱</th><th>波段</th></tr></thead><tbody><tr><td>博诺牌手表</td><td>U2型</td></tr></tbody><tbody><tr><td>克里斯·马丁</td><td>酷玩</td></tr><tr><td>米克·贾格尔</td><td>滚石乐队</td></tr><tr><td>约翰·列侬</td><td>披头士乐队</td></tr></tbody></table>

涉及显示的现代解决方案:带网格间隙的网格。

创建表格的现代解决方案是使用CSS网格或flexbox。

要在行和列之间添加空间,可以使用网格间距:[垂直][水平]。

为了防止网格间隙为零的“过厚/双边框”,可以在单元格样式中添加边距:-1px。值得注意的是:只有当你的边界和网格间隙都为零时,你才需要这个黑客。

我的网格{显示:栅格;网格模板列:1fr 1fr;栅隙:10px 0px;}我的项目{边框:2px实心#c60965;背景:#ffc000;颜色:#c60965;边距:-1px;字体大小:20px;显示:柔性;对齐内容:中心;对齐项目:居中;}<我的网格><my item>1</my item><my item>2</my item><my item>3</my item><my item>4</my item><my item>5</my item></我的网格>

柱之间的间距以相同的方式实现。例如,列之间的20px空间和行之间的10px空间使用以下语法完成:gridgap:10px 20px;。

行/列内的空间通过填充实现。


可调整演示

下面是一个交互式演示,您可以在其中调整网格间隙、填充和打开/关闭边距黑客,以查看更改。

另外:在底部,您可以找到为这种行为插入什么代码(关于网格间隙、填充和边距黑客)

<style>我的网格{display:grid;网格模板列:1fr 1fr;}我的项目{border:2px纯色#c60965;背景:#ffc000;颜色:#c6096;边距:-1px;字体大小:20px;显示:flex;}cus{font-family:Menlo;显示:block;填充:7px;页边空白:20px,边框:3px灰色虚线;边框半径:20px、字体大小:14px;}集合{display;flex;对齐项目:center;}开发网格{display:grid;网格模板列:1fr 1fr;margin:5px;}.ack{transform:scale(1.3);margin-top:13px;margin-left:5px;}txt:最后一种类型{dispatch:inline-block;margin-top:10px;}d{display:block;margin-op:10px;字体系列:Menlo;}pre{padding:10px;background:rgb(246246246);}</style><我的网格><我的项目>单元格编号1</我的项目<我的项>单元格编号2</我项目>三</my item><my item>单元格编号四</my item><my item>单元编号五</my item>></my grid><cus><dev grid><txt>行间距:</txt><input-type=“range”min=“0”max=“20”value=“0“><txt>列间距:</txt><input type=“range“min=”0“max=”20“value=”0填充(列):</txt><input type=“range”min=“0”max=“20”value=“0”><txt>保证金破解:</txt><label><input class=“hack”type=“checkbox”checked><tt>on</tt></label></dev-grid></cus><d>实现此功能的代码:</d><pre></pre><script src=“https://cdnjs.cloudflare.com/ajax/libs/jquery/3.3.1/jquery.min.js“></script><script>var values=[0,0,0],hack=0,props={grid:{dis:”display:grid;“,cols:”grid template columns:1fr 1fr;“},item:{}};function drawProps(){grid_props=Object.values(props.grid).map(p=>`${p}`).join(”\n“),item_props=Object.value(props.item).maap(p=>`${p}').joit(”\n),all_code=`my grid{grid \n}`,“”!=item_props&&(all_code+=`\n我的项目{\n${item_props}\n}),$(“pre”).text(all_code)}props.item.ack=“margin:-1px;”,drawProps(),$(“input[type=range]”).on(“input”,function(){ind=($(this).index()-1)/2,values[ind]=$(this).val(),$[(“我的网格”).css(“网格间隙”,`${values[0]}px${values[1]}px `),$“我的项目”).css(“填充”,`${values[2]}px${values[3]}px px${values[3]}px `),code_grid=`网格间隙:${values[0]}px${values[1]}px;`,values[0]==values[1]&&(code_grid=`网格间隙:${values[0]}px;`,0==values[0]&&(code_grid=“”)),code_padding=`填充:${values[2]}px${values[3]}px${values[2]}像素${value[3]}像素;`,values[2]==values[3]&&(code_padding=`padding:${values[2]}px;`,0==values[2][(code-padding=“”)),props.grid.gap=code_grid,props.item.padding=code_padding,“”==props.grid.gap&&delete props.grid.cap,“”=props.item.badding&&delete props.item.padding,drawProps()}),$(“.ack”).change(function(){hack=$(this).is(“:checked”),st=hack?“on”:“off”,$(“tt”).text(st),hack?(props.item.hack=“margin:-1px;”,$“my item”).css(“margin”,“-1px”):(props.item.hack&&delete props.item.ack,$(”my item“).css”margin:0px“),drawProps()})</脚本>

您可以在表格中使用线条高度:

<table style="width: 400px; line-height:50px;">