我不知道为什么我的边框样式不适用于 position: sticky;
属性。我想在我的粘性表格标题上设置边框样式。但我不想使用透明背景色。我怎样才能实现它?这是我的问题和 JSFiddle 链接 的示例代码
#wrapper {
width: 400px;
height: 200px;
overflow: auto;
}
table {
width: 100%;
text-align: center;
border-collapse: collapse;
}
table tr th,
table tr td {
border: 2px solid;
}
table thead th {
position: -webkit-sticky;
position: sticky;
top: 0;
background-color: #edecec;
}
<div id="wrapper">
<table>
<thead>
<tr>
<th>A</th>
<th>B</th>
<th>C</th>
<th>D</th>
<th>E</th>
</tr>
</thead>
<tr>
<td>1</td>
<td>1</td>
<td>1</td>
<td>1</td>
<td>1</td>
</tr>
<tr>
<td>2</td>
<td>2</td>
<td>2</td>
<td>2</td>
<td>2</td>
</tr>
<tr>
<td>3</td>
<td>3</td>
<td>3</td>
<td>3</td>
<td>3</td>
</tr>
<tr>
<td>4</td>
<td>4</td>
<td>4</td>
<td>4</td>
<td>4</td>
</tr>
<tr>
<td>5</td>
<td>5</td>
<td>5</td>
<td>5</td>
<td>5</td>
</tr>
<tr>
<td>6</td>
<td>6</td>
<td>6</td>
<td>6</td>
<td>6</td>
</tr>
<tr>
<td>7</td>
<td>7</td>
<td>7</td>
<td>7</td>
<td>7</td>
</tr>
<tr>
<td>8</td>
<td>8</td>
<td>8</td>
<td>8</td>
<td>8</td>
</tr>
<tr>
<td>9</td>
<td>9</td>
<td>9</td>
<td>9</td>
<td>9</td>
</tr>
<tbody>
</tbody>
</table>
</div>
以下是我想要的以及我的问题不够清楚的屏幕截图。
您可以看到 th
的内联边框样式不起作用( 删除 position
css 属性,您将看到周围的边框。 )。
向下滚动一点后。你会看到所有的边框样式都消失了。
原文由 Cataclysm 发布,翻译遵循 CC BY-SA 4.0 许可协议
出现问题是因为使用了
border-collapse: collapse
。当浏览器折叠边框时,<th>
的顶部和底部边框必须应用到周围的元素——顶部边框到<table>
,底部边框到以下<tr>
。如果您使用
border-collapse: separate
并将边框设置为位于一侧,边框将真正附加到<th>
,按预期保持固定,并显示为折叠。以下是可应用于您的 HTML 代码段的示例样式。