【问题标题】:HTML table cell padding insterted despite padding: 0尽管有填充,但仍插入了 HTML 表格单元格填充:0
【发布时间】:2018-12-09 19:16:32
【问题描述】:

我正在破解 Bootstrap 表以实现可点击的行。我觉得我非常接近我的目标,但是我遇到了单元格填充问题。

考虑一下这个小提琴:https://jsfiddle.net/aq9Laaew/64614/

tr.table-href > td {
	padding: 0;
}

a.table-href {
	padding: 0.75rem;
	display: block;
}
<!-- 
  Bootstrap docs: https://getbootstrap.com/docs
-->

<div class="container">
  <div class="row">
    <table class="table">
      <thead>
        <tr>
          <th scope="col">Col 1</th>
          <th scope="col">Col 2</th>
          <th scope="col">Col 3</th>
          <th scope="col">Col 4</th>
        </tr>
      </thead>
      <tbody>
        <tr class="table-href">
          <td>
            <a class="table-href" href="#">Much much longer val than usual</a>
          </td>
          <td>
            <a class="table-href" href="#">Val 2</a>
          </td>
          <td>
            <a class="table-href" href="#">Some value 3</a>
          </td>
          <td>
            <a class="table-href" href="#">Some value 4</a>
          </td>
        </tr>
      </tbody>
    </table>
  </div>  
</div>

如您所见,我将td 填充设置为0,以便内部的a 可以填充内容,从而使整个单元格可点击。但是,当某些单元格太宽并被包裹时,较短的单元格无论如何都会插入一些底部填充,即使 Chrome 开发工具告诉我没有:

问题:如何去掉这个填充,让里面的a 完全填满单元格表?

【问题讨论】:

  • 不是填充。您的问题是真的吗,如何将a 扩展至与其父级一样高?
  • @MrLister 我不知道它是什么。它显示为填充,它充当填充,所以我使用我认为适用的任何命名。

标签: html css html-table bootstrap-4


【解决方案1】:

可以这样做:

tr.table-href > td {
  height: 1px;
  padding: 0;
}

a.table-href {
  display: block;
  height: 100%;
  padding: 0.75rem;
}

td 设置为具有高度将允许a 使用百分比高度,但td 在需要时仍会自然增长。

【讨论】:

  • 没错。也许值得有人说,像这样的样式似乎不正常,并且可能不是一个好的用户界面,让可点击的链接扩展到这样的空白。
  • @Coop 我发现这个用例是完全合理的。你有表格数据,所以表格是一种自然的显示布局,每一行对应一个页面,所以你想让它可点击。如果a 没有填满整个高度,则该行的某些部分将无法点击。有没有其他方法可以绕过它,UI 方面?
  • @Red 如果您希望整行成为链接,那么我可能会这样做。抛弃表格并为具有嵌套跨度的每一行提供一个链接,而不是指向相同源和样式问题的多个链接。这可能会导致更少的标记、更多机器可读的代码和更好的 SEO。
猜你喜欢
  • 1970-01-01
  • 1970-01-01
  • 2017-10-31
  • 1970-01-01
  • 2015-06-04
  • 2014-05-18
  • 2010-11-12
  • 2014-05-08
  • 1970-01-01
相关资源
最近更新 更多