2013-08-22 65 views

Trả lời

19

Có, điều đó là có thể. Mặc dù tôi không khuyên bạn nên vì input range không thực sự được hỗ trợ bởi tất cả các trình duyệt bởi vì một phần tử mới được thêm vào trong HTML5 và HTML5 chỉ là một bản nháp (và sẽ dài) để tạo kiểu cho nó có lẽ không phải là lựa chọn tốt nhất.

Ngoài ra, bạn cũng sẽ cần một chút JavaScript. Tôi đã tự do sử dụng thư viện jQuery cho điều này, vì mục đích đơn giản.

Đây là bạn: http://jsfiddle.net/JnrvG/1/.

+4

Đó không phải là câu hỏi, những gì tôi cần phải làm điều đó bằng css, có musst là một cách chỉ với css. – Ipad

+10

Bạn có thể làm cho nó hoạt động trong Chrome mà không cần JS (http://jsfiddle.net/1xg1j3tw/). Đối với IE10 +, bạn có thể sử dụng các phần tử giả trên -ms-fill-lower và -ms-fill-upper. – Ales

+1

@Ales Bạn nên đặt câu trả lời đó vào một câu trả lời bổ sung. –

0

Giờ đây, nó được hỗ trợ với các phần tử giả trong mỗi WebKit, Firefox và IE. Nhưng, tất nhiên, nó khác nhau ở mỗi người. : (

Xem this question 's câu trả lời và/hoặc tìm kiếm một CodePen tựa đề prettify <input type=range> #101 cho một số giải pháp

2

Một bản cập nhật nhỏ để này một:.

nếu bạn sử dụng sau đó sẽ cập nhật một cách nhanh chóng chứ không phải trên phiên bản chuột

"thay đổi MouseMove", chức năng"

<script> 
$('input[type="range"]').on("change mousemove", function() { 
    var val = ($(this).val() - $(this).attr('min'))/($(this).attr('max') - $(this).attr('min')); 

    $(this).css('background-image', 
       '-webkit-gradient(linear, left top, right top, ' 
       + 'color-stop(' + val + ', #2f466b), ' 
       + 'color-stop(' + val + ', #d3d3db)' 
       + ')' 
       ); 
});</script> 
39

. Tinh khiết CSS giải pháp:

  • Chrome: Ẩn tràn từ input[range], và điền tất cả các không gian còn lại để ngón tay cái với màu sắc bóng.
  • IE: không cần phải phát minh lại bánh xe: ::-ms-fill-lower
  • Firefox không cần phải phát minh lại bánh xe: ::-moz-range-progress

/*Chrome*/ 
 
@media screen and (-webkit-min-device-pixel-ratio:0) { 
 
    input[type='range'] { 
 
     overflow: hidden; 
 
     width: 80px; 
 
     -webkit-appearance: none; 
 
     background-color: #9a905d; 
 
    } 
 
    
 
    input[type='range']::-webkit-slider-runnable-track { 
 
     height: 10px; 
 
     -webkit-appearance: none; 
 
     color: #13bba4; 
 
     margin-top: -1px; 
 
    } 
 
    
 
    input[type='range']::-webkit-slider-thumb { 
 
     width: 10px; 
 
     -webkit-appearance: none; 
 
     height: 10px; 
 
     cursor: ew-resize; 
 
     background: #434343; 
 
     box-shadow: -80px 0 0 80px #43e5f7; 
 
    } 
 

 
} 
 
/** FF*/ 
 
input[type="range"]::-moz-range-progress { 
 
    background-color: #43e5f7; 
 
} 
 
input[type="range"]::-moz-range-track { 
 
    background-color: #9a905d; 
 
} 
 
/* IE*/ 
 
input[type="range"]::-ms-fill-lower { 
 
    background-color: #43e5f7; 
 
} 
 
input[type="range"]::-ms-fill-upper { 
 
    background-color: #9a905d; 
 
}
<input type="range"/>

+1

Hi deathangel908, giải pháp tốt đẹp. Tôi chỉ cải thiện phần bóng của hộp: hộp đổ bóng: -80px 0 0px 80px # 43e5f7; – user1351452

+9

Vấn đề với điều này trong chrome là nếu bạn muốn ngón cái to hơn bản nhạc, thì bóng hộp chồng lên bản nhạc Chiều cao của ngón tay cái Có một cách để giam giữ hộp bóng bên trong theo dõi không? – mharris7190

+0

Điều này không hoạt động đối với các đầu vào có độ rộng dựa trên phần trăm. Bất kỳ ai cũng có cách giải quyết cho điều đó? –

4

Các giải pháp được chấp nhận trước đó là không còn hoạt động nữa.

Tôi đã kết thúc mã hóa một hàm đơn giản bao bọc range vào một vùng chứa theo kiểu thêm thanh cần thiết trước con trỏ. Tôi đã viết this example nơi dễ dàng để xem hai màu 'màu xanh' và 'màu da cam' được đặt trong css, vì vậy chúng có thể được sửa đổi nhanh chóng.

-2
input type="range" min="0" max="50" value="0" style="margin-left: 6%;width: 88%;background-color: whitesmoke;" 

trên thay đổi mã dao động kiểu đầu vào .....

+0

Điều này đơn giản là không hoạt động. http://jsfiddle.net/abalter/t0osv2ky/ – abalter

+0

Hoạt động trong FireFox 57 bu không phải Opera 49 và Safari 11 - tồi tệ hơn, không có gì hỗ trợ foreground-color. – devon