2012-05-20 27 views
25

Tôi có một danh sách các nước, một số với một tên rất dài:Làm cách nào để kiểm soát chiều rộng của thẻ được chọn?

<select name=countries> 
<option value=af>Afghanistan</option> 
<option value=ax>Åland Islands</option> 
... 
<option value=gs>South Georgia and the South Sandwich Islands</option> 
... 
</select> 

Theo mặc định, chọn hộp sẽ được miễn là tùy chọn dài nhất trong danh sách. Tôi muốn tạo một hộp chọn để nó thể hiện hành vi mặc định khi được xem từ cửa sổ trình duyệt rộng, nhưng phù hợp với 90% chiều rộng vùng chứa khi được xem từ cửa sổ trình duyệt hẹp, nhỏ hơn độ dài của tùy chọn dài nhất.

Tôi đã thử min-width: 90%; nhưng không hoạt động. Điều này có thể được thực hiện bởi kiểu dáng CSS một mình không?

+0

http://stackoverflow.com/questions/294040/how-to-expand-select-option-width-after-the-user-wants-to-select-an-option – Dhiraj

+0

@DhirajBodicherla: Tôi nghĩ điều đó không 't trả lời câu hỏi của tôi. Phải không? –

+1

bản sao có thể có của [Cách làm cho các yếu tố được chọn thu nhỏ theo kiểu phần trăm chiều rộng tối đa trong phạm vi trường] (http://stackoverflow.com/questions/10672586/how-to-make-select-elements-shrink-to-max-width -percent-style-within-fieldset) – GregD

Trả lời

34

SỬ DỤNG style="max-width:90%;"

<select name=countries style="max-width:90%;"> 
<option value=af>Afghanistan</option> 
<option value=ax>Åland Islands</option> 
... 
<option value=gs>South Georgia and the South Sandwich Islands</option> 
... 
</select> 

LIVE DEMO

+0

Tôi không nghĩ rằng bạn đã hiểu câu hỏi của tôi. Bạn có thể đọc lại không? Cảm ơn. –

+0

@BenHuh: Xin lỗi. Hãy để tôi thử lại một lần nữa. –

+0

@BenHuh: Có được không? –

8

Bạn đã chỉ đơn giản nhận nó về phía sau. Chỉ định chiều rộng tối thiểu sẽ làm cho menu chọn luôn là ít nhất là chiều rộng đó, vì vậy nó sẽ tiếp tục mở rộng đến 90% bất kể kích thước cửa sổ là gì, cũng ít nhất là kích thước của tùy chọn dài nhất.

Thay vào đó, bạn cần sử dụng max-width. Bằng cách này, nó sẽ cho phép trình đơn chọn mở rộng đến tùy chọn dài nhất của nó, nhưng nếu mở rộng vượt quá chiều rộng tối đa 90% đã thiết lập của bạn, hãy kéo nó xuống chiều rộng đó.

+0

Nhưng làm thế nào để hạ gục nó? Tôi có thể có hai chiều rộng tối đa không? –

+0

Trình duyệt thực hiện tất cả các thao tác crunching. – animuson

+1

Rõ ràng, chiều rộng tối đa không hoạt động trên thẻ được chọn. Tôi đang sử dụng phiên bản firefox mới nhất, không chắc chắn về phần còn lại. –

1

Add div wrapper

<div id=myForm> 
<select name=countries> 
<option value=af>Afghanistan</option> 
<option value=ax>Åland Islands</option> 
... 
<option value=gs>South Georgia and the South Sandwich Islands</option> 
... 
</select> 
</div> 

và sau đó viết CSS

#myForm select { 
width:200px; } 

#myForm select:focus { 
width:auto; } 

Hy vọng điều này sẽ giúp.

Các vấn đề liên quan