2011-02-23 24 views
10

Tôi có hai yếu tố HTML như vậy:Làm thế nào để thiết lập chiều rộng tương tự cho đầu vào văn bản HTML và thả xuống đầu vào

<input type="text"> 

<select> 
    <option>Apple</option> 
    <option>Orange</option> 
    <option>Banana</option> 
    <option>Grapes</option> 
</select> 

Tôi không phải là ở tất cả các khả năng để làm cho họ cùng chiều rộng. Không có vấn đề gì chiều rộng tôi chỉ định cho cả hai yếu tố, 100% hoặc 200px hoặc bất cứ điều gì, thả xuống luôn luôn có vẻ là khoảng 5px ngắn hơn so với hộp văn bản. Điều này xảy ra trong IE, Firefox và Chrome - trong WINDOWS.

Tôi làm cách nào để đặt chúng có cùng chiều rộng?

Giải pháp

input, select 
{ 
    -ms-box-sizing:border-box; 
    -moz-box-sizing:border-box; 
    box-sizing:border-box; 
    -webkit-box-sizing:border-box; 
} 

Trả lời

5

Hãy xem this working Example

Bạn có thể thay đổi CSS chỉ để giữ cho nó thích:

input, select 
{ 
    width:250px;   
} 
+0

+1 không giải quyết được vấn đề hoàn toàn kể từ khi tôi buộc phải đặt đường viền tùy chỉnh để đạt được độ cân bằng 100% chiều rộng. Tôi nhận thấy bạn phải bắt buộc thiết lập biên giới để làm cho nó hoạt động - và nó phá hủy cái nhìn và cảm giác bản địa. Tôi muốn có viền tự nhiên cho các điều khiển. Nhưng nó giải quyết vấn đề chiều rộng. –

+0

Tùy chọn tốt nhất cho đến nay ... để đánh dấu là câu trả lời. Nhưng tôi thực sự muốn loại bỏ phần biên giới và có thể thiết lập chiều rộng. –

+1

Cảm ơn bạn đã giới thiệu cho tôi tài sản kích thước hộp. Sau khi thử nghiệm một số, tôi thấy rằng khi tôi đặt nó vào 'border-box' thay vì 'content-box', tôi nhận được hiệu ứng mong muốn KHÔNG thiết lập đường viền. –

2

Tại sao không làm điều này?

input[type="text"] { 
    width: 200px; 
} 

select { 
    width: 205px; 
} 
+1

Thật thông minh và thiết thực :) nhưng tôi là loại người không làm ngủ sau khi thực hiện "hack". Tôi tò mò .. tại sao họ không cùng chiều rộng? Và giải pháp của bạn ... sự khác biệt về chiều rộng có thể tăng lên 10px hoặc giảm xuống 0 tùy thuộc vào chủ đề. Tôi sẽ làm gì sau đó? –

+0

@ Thứ tư: vâng, xin lỗi, tôi không thể cưỡng lại. Luôn luôn là một nỗi đau để tạo kiểu cho phần tử '