Đây là một giải pháp đơn giản và gọn gàng mà không cần sử dụng JavaScript hoặc hack bố cục bảng. Nó tương tự như câu trả lời này: Nhập văn bản chiều rộng tự động điền 100% với các phần tử khác trôi nổi
Điều quan trọng là phải bọc trường đầu vào bằng một nhịp display:block
. Điều tiếp theo là nút phải đến trước và trường đầu vào thứ hai.
Sau đó, bạn có thể thả nút sang phải và trường đầu vào sẽ lấp đầy khoảng trống còn lại.
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>
Một câu đố đơn giản: http://jsfiddle.net/v7YTT/90/
Cập nhật 1: Nếu trang web của bạn chỉ nhắm mục tiêu đến các trình duyệt hiện đại, tôi khuyên bạn nên sử dụng các hộp linh hoạt . Ở đây bạn có thể thấy sự hỗ trợ hiện tại .
Cập nhật 2: Điều này thậm chí hoạt động với nhiều nút hoặc các yếu tố khác chia sẻ đầy đủ với trường đầu vào. Đây là một ví dụ .