【问题标题】:Remove table borders between two td completely only in one cell [duplicate]仅在一个单元格中完全删除两个 td 之间的表格边框[重复]
【发布时间】:2016-12-13 13:57:38
【问题描述】:

在一个大型 HTML 表格中,我有一个由两个相邻单元格组成的输入部分。第一个是右对齐的井号,下一个是输入单元格(表示这部分正在输入金额)。

我希望“双单元格”具有红色背景,但似乎无法删除它们之间的白色边界线。作为比较,如果您通过 colspan 连接两个单元格,您显然不会得到任何分离,我想为输入单元格组合创建相同的效果。

请注意,我确实希望该表中其他任何地方都有边框,而不是在这些单元格之间。

<table>
  <tr>
    <td style="background-color:red;text-align:right;padding-right:0;border-width: 1px 0 1px 1px;border-spacing:0px;">&pound;</td>
    <td style="background-color:red;padding-left:0;border-width: 1px 1px 1px 0;border-spacing:0px;">
      <input type="text" style="background-color:red" value="0">
    </td>
  </tr>
  <tr>
    <td style="background-color:green" colspan="2">no line</td>
  </tr>
</table>

【问题讨论】:

  • table {border: none} 添加到您的 CSS 代码中。
  • 默认情况下, 元素也有一个边框,在您的特定情况下可能看起来像一个表格边框。我也建议禁用输入边框。
  • 即使第二个 td 只是一个简单的单元格(没有输入),仍然有一行我无法摆脱。
  • 忠告,不要做内联样式创建类或 id 并将其添加到您的 css 中。
  • 正如希望解释的那样,这个问题显然不是上述问题的重复。如何删除此“重复”声明?

标签: html css


【解决方案1】:

删除&lt;input&gt;pound 符号之间的边框,使用伪:before 并制作相同颜色的假边框(在您的情况下为red)。

看看下面的sn-p:

.pound-sign {
  background-color:red;
  text-align:right;
  padding-right:0;
  border-width: 1px 0 1px 1px;
  border-spacing:0px;
}

.input-holder {
  position: relative;
  background-color:red;
  padding-left:0;
  border-spacing:0px;
}

.input-holder:before {
  content: '';
  position: absolute;
  top: 0;
  left: -3px;
  width: 3px;
  height: 100%;
  background: red;
}

.input-holder input {
  background-color:red;
  border: 1px solid #fff;
}

.green {
  background-color:green;
}
<table>
  <tr>
    <td class="pound-sign" style="">&pound;</td>
    <td class="input-holder">
      <input type="text" value="0">
    </td>
  </tr>
  <tr>
    <td class="green" colspan="2">no line</td>
  </tr>
</table>

希望这会有所帮助!

【讨论】:

  • 我只想删除这两个单元格之间的边框,而不是整个表格中的任何地方。
  • 我想在这两个单元格的另一端设置边框,而不是在两者之间。所以只想去掉一个“线”。
  • @Rob 我已经更新了我的答案,看看。这是你想要的吗?
  • 看起来更好,但不喜欢表格边框折叠,因为这会影响所有其他单元格(只需将其他行和单元格放入这个精简的测试表中即可查看)。
  • @Rob 哦!我的错。我忘了删除border-collapse 属性,再看一下sn-p。