Ответ 1
Объяснение
Здесь ссылка на модель W3C Box, в которой подробно объясняется, что происходит с вашим элементом.
- - - - -
Все элементы ввода имеют границы по умолчанию и могут также иметь отступы и поля, но самое главное, это следует за спецификациями модели коробки W3C с помощью content-box
.
Это означает, что если вы установите ширину на 100%, фактический размер элемента будет больше 100%, если вы включите дополнение/границы, как показано на изображениях выше.
Решение
Добавьте дополнение к td, чтобы вручную отрегулировать ширину ввода до тех пор, пока вы не захотите. Помните, что добавление дополнений к вводу означает, что вы должны добавить ту же сумму в td, чтобы противодействовать расширению.
Здесь живой пример
input {
width: 100%;
padding: 10px;
margin: 0px;
}
table .last, td:last-child {
padding: 2px 24px 2px 0px;
}
Альтернативное решение
Вы также можете использовать версию CSS3, используя размер окна (совместимость браузера).
Это свойство можно использовать для переключения между двумя коробками и будет вести себя так, как вы ожидали.
Здесь живой пример
input {
width: 100%;
padding: 10px;
margin: 0px;
box-sizing: border-box;
-moz-box-sizing: border-box;
-webkit-box-sizing: border-box;
}
Вот несколько возможных дубликатов того же вопроса