我想将绝对定位的元素添加为表格行的:after(of :before)。
看这个:
table {
  border: 1px dotted gray;
  border-collapse: collapse;
  border-spacing: 0;
  td {
    padding: 0;
    margin: 0;
    width: 100px;
    background: rgba(255, 0, 0, 0.2)
  }
}
table.a .special::before {
  content: 'a';
}
table.b .special::before {
  content: 'a';
  display: block;
  position: absolute;
  right: 10px;
}
table.c .special::after {
  content: 'a';
  display: block;
  position: absolute;
  right: 10px;
}
table.d .special .after {
  display: block;
  position: absolute;
  right: 10px;
  top: 0;
}<table>
  <tr>
    <td>1</td>
    <td>2</td>
    <td>3</td>
  </tr>
  <tr class='special'>
    <td>1</td>
    <td>2</td>
    <td>3</td>
  </tr>
</table>
<br/>
<table class="a">
  <tr>
    <td>1</td>
    <td>2</td>
    <td>3</td>
  </tr>
  <tr class='special'>
    <td>1</td>
    <td>2</td>
    <td>3</td>
  </tr>
</table>
<br/>
<table class="b">
  <tr>
    <td>1</td>
    <td>2</td>
    <td>3</td>
  </tr>
  <tr class='special'>
    <td>1</td>
    <td>2</td>
    <td>3</td>
  </tr>
</table>
<br/>
<table class="c">
  <tr>
    <td>1</td>
    <td>2</td>
    <td>3</td>
  </tr>
  <tr class='special'>
    <td>1</td>
    <td>2</td>
    <td>3</td>
  </tr>
</table>
<Br/>
<table class="d">
  <tr>
    <td>1</td>
    <td>2</td>
    <td>3</td>
  </tr>
  <tr class='special'>
    <td>1</td>
    <td>2</td>
    <td>3</td>
    <div class='after'>a</div>
  </tr>
</table>我假设当我添加这样一个元素时,渲染引擎(至少基于 Webkit)认为它是某种表格单元格。
:before在所有浏览器中都无法正常工作。但:after在 Firefox 中运行良好,在 webkit 中几乎很好。在 webkit 中,它保留了一个小空间,并使整个表格的宽度更大。
 - 这就是 webkit 中困扰我的地方。
- 这就是 webkit 中困扰我的地方。
如何解决这个问题?我在哪里可以了解它发生的原因?