Я думаю, что [ширина 100%] может быть проблемой при таком подходе, так как границы и отступы текстового поля занимают часть, добавляемую к ширине.
Действительно.
Вы можете компенсировать это, добавив padding-right
к ячейке, содержащей вход (или только ко всем ячейкам), аналогичного размера, к границам и отступам ввода. Затем ввод расширяется за пределы области содержимого ячейки, но только на отступы, поэтому он не создает беспорядка.
Это нормально для обычного ввода текста. Если у вас также есть другие элементы, такие как поля выбора или кнопки, которые вы хотите изменить таким образом, метод заполнения может иметь неприятные последствия, потому что в IE «ширина» выбора включает границы и отступы (из-за того, что это виджет OS ).
Для большинства браузеров самый простой и последовательный способ исправить это - это свойство CSS3 box-sizing :
td.input input {
width: 100%;
box-sizing: border-box;
-moz-box-sizing: border-box;
-webkit-box-sizing: border-box;
}
IE6-7 пока не поддерживает это, поэтому вы все равно можете получить поля, которые не совсем совпадают в этих браузерах. Если вам не безразлично, вы можете добавить обходной путь специально для них.