2011-01-20 38 views
12

Điều này có vẻ thực sự đơn giản nhưng tôi thậm chí không thể tìm thấy một cái gì đó nói với tôi rằng nó không phải là có thể, hãy để một mình làm thế nào để làm điều đó.Làm cách nào để kiểm soát chiều cao của phần tử Tùy chọn trong Webkit?

Tôi có một trang sử dụng mở rộng/nhiều select giây và dường như tôi không thể kiểm soát chiều cao của các tùy chọn. Họ trông thật sự sảng khoái. Trong Firefox, giá trị CSS cho option trong heightline-height cả hai dường như có hiệu quả mong muốn, cũng như padding, nhưng không có trong Chrome 8 hoặc Safari 5. Tôi có thiếu gì đó không? Đây là một mẫu mã của tôi. Tôi đã đưa vào bất cứ điều gì có thể ảnh hưởng đến các tùy chọn trong trường hợp có một số giá trị ghi đè mà tôi đang thiếu.

body, input, select, checkbox { 
 
    font-family:'Avenir Lt Std',AppleGothic,'century gothic',Verdana,sans-serif; 
 
    font-size: 15px; 
 
    font-weight:200; 
 
    line-height: 18px; 
 
} 
 

 
input, select { 
 
    color:#4c2a18; 
 
    border: 1px solid #cfc8b4; 
 
    background-color:#ffffff; 
 
    -moz-border-radius: 0; 
 
    -webkit-border-radius: 0; 
 
    border-radius: 0; 
 
    margin:0; 
 
} 
 

 
option { 
 
    height: 35px; 
 
    padding:5px; 
 
    line-height: 35px; 
 
}
<select size="5"> 
 
    <option value="">This is option 1</option> 
 
    <option value="">Option 2</option> 
 
    <option value="">Just trying to show how the line height thing works.</option> 
 
</select>

Bạn có thể xem nó trong hành động here.

+1

Tôi không chắc chắn 100%, nhưng tôi cho rằng điều này có khả năng không thể xảy ra trong Chrome. Phần tử 'select' (và, tất nhiên, các phần tử' option' con của nó) nằm dưới sự kiểm soát của hệ điều hành bên dưới, chứ không phải là trình duyệt. Rằng nó hoạt động ở tất cả các trình duyệt khác làm tôi ngạc nhiên. Bạn có thể sử dụng một kiểu được kiểm soát và được kiểm soát bằng JavaScript, 'ul' (hoặc' ol') để đạt được một phần tử kiểu chọn kiểu. –

+0

Tôi có thể tạo kiểu cho phần tử 'select' trong Chrome và thêm' padding' vào đó. –

+0

Tôi luôn quên rằng 'Enter' gửi nhận xét. Dù sao tôi đã coi tuyến đường 'ul' nhưng nó dường như không cần thiết khi' select' thực hiện một công việc hoàn toàn phù hợp, ngoại trừ nhồi nhét tất cả những thứ quá gần nhau. Tôi đang cố gắng tìm ra lý do tại sao nó không phải lúc nào cũng nhìn crammed - nếu có cái gì đó xa hơn các hệ thống cấp bậc đó gây ra điều này, hoặc những gì. –

Trả lời

24

này là không thể trong Chrome, theo the electric toolbox:

Thiết đệm trên một optgroup hoặc tùy chọn không có tác dụng trong Chrome vì vậy bạn không thể kiểm soát lượng thụt đầu dòng. Bạn có thể đặt padding của toàn bộ lựa chọn trong Chrome (dưới dạng bạn có thể sử dụng IE8) nhưng trông có vẻ thực sự là lạ. Không giống IE8, bạn có thể nhấp vào ở bất kỳ nơi nào trong danh sách để mở thậm chí là nếu nó có đệm.

+11

Tuyệt vời! Cảm ơn. Thật là ngu xuẩn. –

+0

@Ben Saufley, nếu bạn muốn điều khiển biểu mẫu tùy chỉnh, bạn sẽ cần phải: 1. cuộn của riêng bạn, b. sử dụng một lib dựng sẵn, iii. chỉ sống với mặc định. – zzzzBov

+1

@zzzzBov - Vì vậy, tôi đã nghe. Mặc dù tôi có thể làm khá nhiều thứ mà tôi cần mà không cần liên quan đến JS. Đây là một vấn đề thẩm mỹ nhỏ tôi đã hy vọng để giải quyết đơn giản. –

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