2009-07-05 62 views
26

Tôi muốn thêm phần đệm vào các tùy chọn của thẻ "chọn" html.Làm cách nào để thêm đệm vào danh sách thả xuống html?

Tôi cố thêm nó vào thuộc tính kiểu "chọn" và "tùy chọn" và nó không hoạt động trong IE.

Tôi có thể làm gì?

+2

bạn đang cố gắng làm gì? tại sao bạn muốn pad các tùy chọn chọn? –

+2

Tôi muốn thêm một số không gian vào bên trái và bên phải của các tùy chọn được chọn để làm cho nó trông đẹp hơn. – Billy

Trả lời

23

OK, tôi ghét phải nghe tất cả những năm 1990, nhưng chỉ cần trước và ứng dụng kết thúc một không gian để các văn bản tùy chọn có thể chấp nhận được cho các mục tiêu mong muốn của bạn?

+0

+1 bình chọn: Đây là giải pháp tốt nhất cho rằng OP muốn chỉ thêm một số không gian bên trái và bên phải, và nếu anh ta không muốn dành một vài giờ thực hiện thả xuống tùy chỉnh. –

+4

Xin đừng làm vậy. Điều đó ngăn cản việc chọn các tùy chọn từ danh sách bằng cách gõ. Nó cũng phá vỡ tự động điền. Đây là trở kháng đặc biệt đối với người dùng có yêu cầu trợ năng. –

+0

** Một giải pháp khác hoạt động trên tất cả trình duyệt **, đang thêm ' ' vào tùy chọn đầu tiên trong danh sách chọn [this] (http://stackoverflow.com/questions/25752/how-do-i-put-a -space-character-before-option-text-in-a-html-select-phần tử) và [this] (http://stackoverflow.com/questions/5828697/how-to-retain-spaces-in-dropdownlist- asp-net-mvc-dao cạo-xem), Hy vọng sẽ giúp. – stom

-3

CSS:

option{ 
padding: 0.5em; 
} 
+0

Nó không hoạt động trong IE. – Billy

+11

Trình duyệt duy nhất mà Firefox hoạt động. Safari, Chrome và Opera đều không chú ý đến nó. –

8

Rất khó để tạo kiểu một thả xuống trình duyệt hộp chéo. Để có được bất kỳ loại điều khiển nào, bạn cần phải mã hóa một mã thay thế bằng JavaScript. Được cảnh báo, tuy nhiên:

  • Hãy nhớ rằng người dùng có thể gặp khó khăn trong sử dụng thả bạn xuống - mất usabilty vào tài khoản
  • Thay thế một yếu tố lựa chọn với JS - đây là một vấn đề khả năng tiếp cận (và cũng cho phép người dùng mà không hỗ trợ JS sử dụng đầu vào hình thức)
3

các công trình sau đây, trong FF3 + và Midori (và các trình duyệt Webkit có lẽ khác):

select 
     {width: 14em; 
     margin: 0 1em; 
     text-indent: 1em; 
     line-height: 2em;} 

select * {width: 14em; 
     padding: 0 1em; 
     text-indent: 0; 
     line-height: 2em;} 

chiều rộng là cho phép en ough phòng trong hộp hiển thị select khi không hoạt động, lề làm những gì nó luôn luôn làm, text-indent được sử dụng để giả vờ đệm giữa ranh giới bên trái của hộp chọn và văn bản bên trong. line-height chỉ để cho phép khoảng cách dọc.

Tôi không thể nhận xét về việc sử dụng nó trong IE, tôi sợ, vì vậy nếu có ai có thể nuôi lại thích nghi - phù hợp với điều đó sẽ tốt.

Cần lưu ý rằng phần thả xuống của lựa chọn (select *) không bị ảnh hưởng bên ngoài FF3 đối với tôi, vì bất kỳ lý do gì, vì vậy nếu đó là câu hỏi bạn muốn trả lời, tôi xin lỗi vì không có gì mới.

Demo tại địa chỉ: http://davidrhysthomas.co.uk/so/select-styling.html

-3

Tôi không thể làm điều này để làm việc với đệm hoặc khoảng cách vì một lý do nào đó. Tôi đã đi với một giải pháp jQuery trông như thế này:

$(document).click(function(){ 
    $('#selector option').each(function(){ 
    $(this).html("  "+$(this).text()); 
    }); 
}); 
2

Tạo một lớp cho SELECT

.listBox{ 
    width: 200px; 
    ...etc 
} 

Bây giờ xác định Css cho các tùy chọn của SELECT

.listBox option{ 
    padding:4px; 
    ...etc 
    } 

Đã thử nghiệm trên IE 10

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