When an HTML table has it's table-layout
set to auto
its columns are auto-sized. Given this scenario is there a way to keep specific columns fixed width? I've tried using CSS width - doesn't seem to have any effect.
The width of the columns i.e. td in a table can be fixed very easily. This can be done by adding the width attribute in the <td> tag. If the width is not specified, the width of the column changes according to the change in the content. The specifications of width for the columns can be in pixels, or percentage.
There are multiple ways to fix the width for <td> tag. Some of them are mentioned below: Using width attribute: The <td> tag has width attribute to control the width of a particular column. By assigning a numeric value to this attribute between 0 to 100 in terms of percentage(or you can use pixel format).
Select your table. On the Layout tab, in the Cell Size group, click AutoFit. Click Fixed Column Width.
You can do this using CSS if you use nth-child
CSS:
.table {
table-layout:auto
}
td, th {
border: 1px solid #999;
padding: 0.5rem;
}
.table1 th:nth-child(1), .table1 td:nth-child(1) {
width: 200px; /*becomes 218px with padding*/
background: hsl(150, 50%, 50%);
}
HTML:
<h3>table 1</h3>
<table class="table1">
<thead>
<tr>
<th>Column 1</th>
<th>Column 2</th>
<th>Column 3</th>
</tr>
</thead>
<tbody>
<tr>
<td>I'm 218px wide!</td>
<td>00001</td>
<td>Blue</td>
</tr>
<tr>
<td>I'm 218px wide!</td>
<td>00002</td>
<td>Red</td>
</tr>
<tr>
<td>I'm 218px wide!</td>
<td>00003</td>
<td>Green</td>
</tr>
</tbody>
</table>
<p> </p>
<h3>table 2</h3>
<table>
<thead>
<tr>
<th>Column 1</th>
<th>Column 2</th>
<th>Column 3</th>
</tr>
</thead>
<tbody>
<tr>
<td>I'm 118px wide!</td>
<td>00001</td>
<td>Blue</td>
</tr>
<tr>
<td>I'm 118px wide!</td>
<td>00002</td>
<td>Red</td>
</tr>
<tr>
<td>I'm 118px wide!</td>
<td>00003</td>
<td>Green</td>
</tr>
</tbody>
</table>
Here is a demo: http://jsfiddle.net/3dyhE/2/
use min-width
instead of width
:
<table style="table-layout: auto">
<tr>
<td style="min-width: 200px">some cell 200px width</td>
<td>other cell, auto width</td>
<td>other cell, auto width</td>
<td>other cell, auto width</td>
<td>other cell, auto width</td>
</tr>
</table>
If you love us? You can donate to us via Paypal or buy me a coffee so we can maintain and grow! Thank you!
Donate Us With