html 如何在css 里设置table 的个个列的固定宽度
Posted
tags:
篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了html 如何在css 里设置table 的个个列的固定宽度相关的知识,希望对你有一定的参考价值。
设置每个单元格的线宽, table td width:1px,单独设一列的话(行是tr),需要给对应的列加选择器,常用的有class,id。然后class为.类名{width:1px},id为#id名width:1px 参考技术A table tdheight: 50px;
如何使用 SASS/CSS 使 HTML 表格占满宽度
【中文标题】如何使用 SASS/CSS 使 HTML 表格占满宽度【英文标题】:How to make HTML Table Take Full Width Using SASS/CSS 【发布时间】:2020-08-13 16:33:19 【问题描述】:我正在尝试使用仅 SASS/CSS 设置table
的样式。我将table
的width
设置为100%
。但是,当我将th
元素的字体大小设置为0.8em
时,我的表格无法采用它允许的所有宽度(请注意,列没有到达右侧的边界线)。鉴于我不控制 HTML,如何使用 CSS 解决此问题?
SASS/CSS
table
color: black;
background-color: white;
border-color: black;
border-style: solid;
border-width: 0 1px 1px 1px;
border-radius: 5px;
border-collapse: collapse;
border-spacing: 0;
display: block;
overflow: auto;
width: 100%;
thead
th
color: white;
background-color: black;
font-weight: bold;
font-size: 0.8em;
padding: 5px 10px;
vertical-align: bottom;
th:first-child
border-top-left-radius: 5px;
th:last-child
border-top-right-radius: 5px;
tbody
td
border-top: 1px solid gray;
padding: 5px 10px;
vertical-align: top;
tr:nth-child(2n)
background-color: lightgray;
<table>
<thead>
<tr>
<th>Method</th>
<th>Runtime</th>
<th align="right">Mean</th>
<th align="right">Ratio</th>
<th align="right">Gen 0/1k Op</th>
<th align="right">Allocated Memory/Op</th>
</tr>
</thead>
<tbody>
<tr>
<td>Baseline</td>
<td>Clr</td>
<td align="right">1.833 us</td>
<td align="right">1.00</td>
<td align="right">2.0542</td>
<td align="right">6.31 KB</td>
</tr>
</tbody>
</table>
【问题讨论】:
【参考方案1】:从表格中移除显示:块
#container,tr
width:100%;
html,body
width:100%;
#container
border-radius:15px;
background-color:black;
table
color: black;
background-color: white;
border-color: black;
border-style: solid;
border-width: 0 1px 1px 1px;
border-radius: 5px;
border-collapse: collapse;
border-spacing: 0;
overflow: auto;
width: 98%;
margin:0 auto;
th
color: white;
background-color: black;
font-weight: bold;
font-size: 0.8em;
padding: 5px 10px;
vertical-align: bottom;
th:first-child
border-top-left-radius: 5px;
th:last-child
border-top-right-radius: 5px;
td
border-top: 1px solid gray;
padding: 5px 10px;
vertical-align: top;
tr:nth-child(2n)
background-color: lightgray;
<html>
<body>
<div id='container'>
<table>
<thead>
<tr>
<th>Method</th>
<th>Runtime</th>
<th align="right">Mean</th>
<th align="right">Ratio</th>
<th align="right">Gen 0/1k Op</th>
<th align="right">Allocated Memory/Op</th>
</tr>
</thead>
<tbody>
<tr>
<td>Baseline</td>
<td>Clr</td>
<td align="right">1.833 us</td>
<td align="right">1.00</td>
<td align="right">2.0542</td>
<td align="right">6.31 KB</td>
</tr>
</tbody>
</table>
</div>
</body>
</html>
【讨论】:
如果我这样做,我会失去桌子上的圆角。我怎样才能保留它们? 将表格放在一个 div 中,并围绕 div 的角。我已经更新了 sn-p 没有额外的div
有什么办法吗?我无法控制 HTML。
当然,去掉多余的 div。将表格显示更改为内联块。然后将td的宽度设置为100/6 = 16.66px
如果还有任意数量的列怎么办?有可扩展的方法吗?【参考方案2】:
这是我认为你想要的,我刚刚删除了 border-collapse
、display:block
(这使表格成为默认 CSS),这是一个 codepen with SCSS,并且这里也有一个工作的 sn-p:
table
color: black;
background-color: white;
border-color: black;
border-style: solid;
border-width: 0 1px 1px 1px;
border-radius: 5px;
border-collapse: separte;
border-spacing: 0;
display: table;
overflow: auto;
width: 100%;
table thead th
color: white;
background-color: black;
font-weight: bold;
font-size: 0.8em;
padding: 5px 10px;
vertical-align: bottom;
table thead th:first-child
border-top-left-radius: 5px;
table thead th:last-child
border-top-right-radius: 5px;
table tbody td
border-top: 1px solid gray;
padding: 5px 10px;
vertical-align: top;
table tbody tr:nth-child(2n)
background-color: lightgray;
<table>
<thead>
<tr>
<th>Method</th>
<th>Runtime</th>
<th align="right">Mean</th>
<th align="right">Ratio</th>
<th align="right">Gen 0/1k Op</th>
<th align="right">Allocated Memory/Op</th>
</tr>
</thead>
<tbody>
<tr>
<td>Baseline</td>
<td>Clr</td>
<td align="right">1.833 us</td>
<td align="right">1.00</td>
<td align="right">2.0542</td>
<td align="right">6.31 KB</td>
</tr>
</tbody>
</table>
【讨论】:
以上是关于html 如何在css 里设置table 的个个列的固定宽度的主要内容,如果未能解决你的问题,请参考以下文章