2013-08-03 30 views
7

Tôi đã cố gắng loại bỏ nền gradient mặc định trong Trang web. Tôi biết nếu tôi thiết lập -webkit-appereance: không có điều này sẽ có thể nhưng sau đó tôi sẽ mất các mũi tên và hành vi khác trong trình đơn thả xuống mà tôi muốn. Có anyway thiết lập nền trắng với sự xuất hiện -webkit: menulist?Trình duyệt (Webkit, IE, Firefox) Thay đổi nền cho chọn

Đây là những gì tôi có nhưng nền không thay đổi

.ius select{ 
    -webkit-appearance: menulist; 
    -moz-appearance: menulist; 
    appearance: menulist; 
    height:32px; 
    border:1px solid #c8c8c8; 
    width:250px; 
    background:rgba(255, 255, 255, 0); 
    background: transparent; 
} 
+0

Bạn có ví dụ không? Tôi không chắc tôi hiểu câu hỏi của bạn. – putvande

+0

Tôi không nghĩ rằng nó có thể thay thế chỉ nền mà không loại bỏ các tính năng khác của một lựa chọn. Bạn luôn có thể sử dụng một plugin jQuery như msDropDown để tạo kiểu cho một lựa chọn tuy nhiên bạn muốn. – eclipsis

Trả lời

5

Thuộc tính xuất hiện thường được sử dụng cho hai điều:

  1. Bắt chước các kiểu gốc của các yếu tố khác
  2. HOẶC loại bỏ tất cả kiểu gốc (xuất hiện cài đặt thành không)

Đó là một tài sản khá kỳ lạ.

Vì bạn muốn xóa nền mặc định gốc, bạn cần đặt giao diện thành không. Điều này sẽ xóa tất cả các kiểu dáng (các gradient và các biểu tượng mũi tên mặc định). Tuy nhiên, đây không phải là vấn đề lớn vì bạn có thể sử dụng css để áp dụng nhiều kiểu dáng hơn cho nó.

Với sự đánh dấu:

<select id="menulist"> 
    <option value="one">One</option> 
    <option value="two">Two</option> 
    <option value="three">Three</option> 
</select> 

Và CSS:

#menulist { 
    -webkit-appearance: none; 
    -moz-appearance: none; 
    appearance: none; 
    height:20px; 
    border:1px solid rgb(156,156,156); 
    width:250px; 
    text-indent: 8px; 
    /** 
    * replace this background url with a proper arrow asset 
    **/ 
    background: url('http://placehold.it/5x10') no-repeat 95% 50%; 
} 

Các jsfiddle đầy đủ có sẵn ở đây: http://jsfiddle.net/gwwar/vR53Q/2/

Kể từ khách sạn này chỉ được hỗ trợ trên Chrome, Safari và Firefox, Tôi có thể sẽ đi một tuyến đường khác nhau và sử dụng kiểu dáng chọn gốc hoặc sử dụng một thành phần thả xuống mà bạn có toàn quyền kiểm soát.

+0

Giải pháp này không hoạt động với Firefox. Trình duyệt hiển thị menu thả xuống của chính nó ở đầu hình nền. –

+0

Dường như có 2 lỗi FF liên quan đến điều này: https://bugzilla.mozilla.org/show_bug.cgi?id=649849 và https://bugzilla.mozilla.org/show_bug.cgi?id=605985 Bạn có thể tuy nhiên, đẩy mũi tên ra khỏi đường bằng cách sử dụng thụt lề văn bản. Nó trông có vẻ kỳ lạ, và bạn nên lý tưởng là không sử dụng thuộc tính xuất hiện và tạo ra thành phần của riêng bạn thay thế. –

+1

FYI: Tôi đã có thể sử dụng unicode ▲ và ▼ đặt trên đầu trang của nhau (thay vì hình nền) để tạo lại các mũi tên. Tôi đã làm điều này trong thẻ