Question: I have a number of tables with the same columns and it would look a lot nicer if they shared the same column widths. Is such a thing possible? Putting them in the same table with some rows with no borders between them isn't an option.

**Edit:** Yeah I'm aware I can fix the widths myself but I was hoping for something that would tie in to the browser's column width algorithm but simply tied two or more tables together for the purpose of doing that layout.

I didn't think such a thing was possible but I thought I'd check just in case.

Answer: 
It's only possible if you can fix-width the columns. If you can set a fixed width then some css like this should work:

```
td {
    width: 25%;
}

```

You can customize each columns width like this:

```
<table>
  <tr>
    <td class="col1">...</td>
    <td class="col2">...</td>
  </tr>
</table>
...
<table>
  <tr>
    <td class="col1">...</td>
    <td class="col2">...</td>
  </tr>
</table>

```

and then specify the widths like this:

```
.col1 {
   width: 25%;
}
.col2 {
   width: 75%;
}

```
To expand on Ken's answer, you can also specify the exact widths in pixels:

```
td { width: 250px }

```

or ems (width of the letter m):

```
td { width: 32em }

```

or ex or pt or whatever (well...actually %, pt, px, em, ex might be it). If you need your columns to be different widths, then the easy way is to give the table cells classes:

```
<table><tr>
    <td class="col1">...</td><td class="col2">...</td>...
</tr></table>

```

and assign column widths to the classes:

```
td.col1 { width: 48em }
td.col2 { width: 200px }
...

```

It should be sufficient to assign column widths to the first row in each table. *[edit: looks like I've been scooped on that while I was writing]*

You could probably also go crazy with the CSS 2 sibling selector, and write something like

```
tr > td:first-child { width:48em } /* first column */
tr > td:first-child + td { width: 200px } /* second column */
tr > td:first-child + td + td { width: 5% } /* third column  */
...

```

but if you have more than a few columns, that could get ugly. And if you're using some sort of template system or script to generate these tables, I'm sure it'll be easier/clearer to just put the class="col#" attribute on each cell in your template once.