От чего измеряется width в % у td?
Все таблицы по умолчанию и так в %, и ширина ячейки изменяется от содержимого, ну когда его становится, слишком много, к примеру больше чем ширина родителя, в которой лежит таблица, то ячейка больше не сожмется)
Надеюсь ответил на ваш вопрос.
P.S. Можно легко проверить с табличкой где 6-8 столбиков, и информация не короткая, и сразу все станет ясно
Кстати из этой ситуации можно взять пару интересных вещей:1. Если взять 2 ячейки в одной задать 1% ширины, то построиться таблица шириной в содержимое этой ячейки умноженное на 100.
Напр. Если взять в первую ячейку положить какой-то содержимое и оно напр.  получится 83px то ширина таблицы будет 8300px: 1я ячейка будет шириной 83px, а вторая займет всю остальную ширину до 8300.
jsfiddle.net/4rcqgj0L/22. Если взять 2 ячейки и в одной задать 100%, то построится таблица шириной больше чем в 1/3 миллиона пикселей(в зависимости от 2й ячейки) :)
В первую в свою очередь можно добавлять контент и это на ширину не повлияет, но 2я ячейка влияет на общую ширину таблицы(ширина общая может дойти свыше миллиона пикселей.
jsfiddle.net/4rcqgj0L/3
А в контейнере можно этим пользоваться
jsfiddle.net/4rcqgj0L/4
напр. для адаптивной верстки.
И что то подобное есть в бутстрапе:
getbootstrap.com/components/#input-groups-buttons
см. как сверстаны input-group и все что в них.