К сожалению, блочная модель CSS, которая добавляет отступ к ширине или высоте элемента для определения размера, приводит к тому, что ширина или высота% значения не будут полезны для элемента с отступом.
Однако, если вам нужно, чтобы строка заполнила всю доступную ширину, но вам не важна ширина отдельных столбцов, вы можете установить только ширину таблицы и только отступы в ячейках:
table#foo { width: 100% }
table#foo td { padding: 5px 20px }