Đầu tiên, đặt chiều cao lớn hơn chiều rộng. Về lý thuyết, đây là tất cả những gì bạn cần. Thông số HTML5 gợi ý nhiều như sau:
... UA đã xác định hướng của điều khiển từ tỷ lệ của các thuộc tính chiều cao và chiều rộng do style-sheet chỉ định.
Opera đã thực hiện nó theo cách này, nhưng Opera hiện đang sử dụng WebKit Blink . Cho đến ngày nay, không có trình duyệt nào triển khai thanh trượt dọc chỉ dựa trên chiều cao lớn hơn chiều rộng.
Bất kể, việc đặt chiều cao lớn hơn chiều rộng là cần thiết để bố cục phù hợp giữa các trình duyệt. Áp dụng đệm bên trái và bên phải cũng sẽ giúp bố trí và định vị.
Đối với Chrome, hãy sử dụng -webkit-appearance: slider-vertical
.
Đối với IE, hãy sử dụng writing-mode: bt-lr
.
Đối với Firefox, hãy thêm một orient="vertical"
thuộc tính vào html. Đáng tiếc rằng họ đã làm theo cách này. Kiểu trực quan nên được kiểm soát thông qua CSS, không phải HTML.
input[type=range][orient=vertical]
{
writing-mode: bt-lr;
-webkit-appearance: slider-vertical;
width: 8px;
height: 175px;
padding: 0 5px;
}
<input type="range" orient="vertical" />
Tuyên bố từ chối trách nhiệm:
Giải pháp này dựa trên việc triển khai trình duyệt hiện tại của các thuộc tính CSS chưa được xác định hoặc chưa được hoàn thiện. Nếu bạn định sử dụng nó trong mã của mình, hãy chuẩn bị để thực hiện các điều chỉnh mã khi các phiên bản trình duyệt mới hơn được phát hành và các đề xuất w3c được hoàn thành.
MDN chứa một cảnh báo rõ ràng chống lại việc sử dụng -webkit-appearance
trên web:
Không sử dụng thuộc tính này trên các trang Web: nó không chỉ không theo tiêu chuẩn mà còn thay đổi hành vi của nó từ trình duyệt này sang trình duyệt khác. Ngay cả từ khóa none
cũng có hành vi không giống nhau trên mỗi phần tử biểu mẫu trên các trình duyệt khác nhau và một số không hỗ trợ nó.
Chú thích cho bản trình diễn thanh trượt dọc trong tài liệu IE chỉ ra một cách sai lầm rằng việc thiết lập chiều cao lớn hơn chiều rộng sẽ hiển thị thanh trượt phạm vi theo chiều dọc, nhưng điều này không hoạt động. Trong phần mã , nó rõ ràng không đặt chiều cao hoặc chiều rộng, và thay vào đó sử dụng writing-mode
. Các writing-mode
bất động sản, như thực hiện bởi trình duyệt IE , là rất mạnh mẽ. Đáng buồn thay, các giá trị được xác định trong bản nháp hiện tại của thông số kỹ thuật tính đến thời điểm viết bài này, bị hạn chế hơn nhiều. Nếu các phiên bản tương lai của IE bỏ hỗ trợ bt-lr
để có lợi cho đề xuất hiện tại vertical-lr
(tương đương với tb-lr
), thanh trượt sẽ hiển thị lộn ngược. Rất có thể, các phiên bản trong tương lai sẽ mở rộngwriting-mode
để chấp nhận các giá trị mới thay vì bỏ hỗ trợ cho các giá trị hiện có. Nhưng, thật tốt khi biết bạn đang phải đối mặt với vấn đề gì.
-webkit-appearance
- Tôi không biết điều đó. Nó thay đổi mọi thứ.