Ось просте і чітке рішення, не використовуючи хакі JavaScript або макет таблиці. Це схоже на цю відповідь: Автоматична ширина введення тексту заповнює 100% іншими плаваючими елементами
Важливо обернути поле введення з проміжком, який є display:block
. Наступне, що кнопка має прийти першою, а поле введення - друге.
Тоді ви можете плисти кнопкою праворуч, а поле введення заповнює залишок місця.
form {
width: 500px;
overflow: hidden;
background-color: yellow;
}
input {
width: 100%;
}
span {
display: block;
overflow: hidden;
padding-right:10px;
}
button {
float: right;
}
<form method="post">
<button>Search</button>
<span><input type="text" title="Search" /></span>
</form>
Проста загадка: http://jsfiddle.net/v7YTT/90/
Оновлення 1: Якщо ваш веб-сайт орієнтований лише на сучасні браузери, я пропоную використовувати гнучкі поля . Тут ви можете побачити поточну підтримку .
Оновлення 2: Це навіть працює з декількома кнопками або іншими елементами, які повністю розділені з полем введення. Ось приклад .