在歌剧中,我可以做以下
<style>
#range{
width: 20px;
heigth: 300px;
}
</style>
<input type="range" id="range" />
它会渲染一个垂直滑块。但是,这似乎不适用于chrome。有没有办法可以做到这一点? (我不是在寻找任何jQuery滑块或任何东西)
答案 0 :(得分:12)
似乎Chromium尚未对此实施支持:
请参阅:http://www.chromium.org/developers/web-platform-status/forms
尚不可用
- 的本地化
- 用于颜色,日期,日期时间,日期时间 - 本地,月份,时间的专用用户界面, 和周类型
- 自动切换到垂直范围
- 价值清理算法
- datalist元素,列表属性和list / selectedOption属性
修改: Vuurwerk indicated实际上可以使用-webkit-appearance: slider-vertical
属性更改演示文稿。虽然 将其转换为垂直滑块,但我不建议这样做,因为它会破坏您的布局并且看起来不太漂亮:example。
如果确实需要垂直滑块,请使用JavaScript solution。目前对<input type="range" />
的支持是非常基本的,所以你可能更适合使用优雅降级或渐进增强方法。
答案 1 :(得分:8)
-webkit-appearance:slider-vertical;
答案 2 :(得分:4)
也许用css转换?
-webkit-transform: rotate(90);
另一种解决方案可能是使用jQuery UI中的滑块模块 http://jqueryui.com/demos/slider/#slider-vertical
答案 3 :(得分:3)
input[type='range']{
width:20px;
height:140px;
border:2px solid blue;
display:block;
-webkit-transform:rotate(90deg); /* Safari and Chrome */
-moz-transform:rotate(90deg);
-o-transform:rotate(90deg);
-ms-transform:rotate(90deg);
transform:rotate(90deg);
z-index: 0;
}
答案 4 :(得分:0)
正如Aron所说,不支持webkit浏览器。
然而,这是我为实现输出所能做的。
body {
margin: 50px;
}
.opacitySlider {
position: relative;
transform: rotate(90deg);
width: 125px;
height: 20px;
}
.opacitySlider:before {
content: " ";
left: 10px;
top: 1px;
position: absolute;
border-top: 9px solid transparent;
border-bottom: 9px solid transparent;
border-left: 115px solid #ccc;
}
.opacitySlider input[type=range] {
outline: none;
-webkit-appearance: none;
height: 20px;
padding: 0;
width: 125px;
background: transparent;
position: relative;
margin: 0;
cursor: pointer;
}
.opacitySlider input[type=range]::-webkit-slider-thumb {
-webkit-appearance: none;
background: #69a80e;
height: 20px;
width: 20px;
border: 1px solid #fff;
border-radius: 50%;
}
.opacitySlider input[type=range]::-moz-range-track {
border: none;
background-color: transparent;
}
.opacitySlider input[type=range]::-moz-range-thumb {
background: #69a80e;
height: 20px;
width: 20px;
border: 1px solid #fff;
border-radius: 50%;
}
.opacitySlider input[type=range]::-ms-fill-lower, .opacitySlider input[type=range]::-ms-fill-upper {
background: transparent;
}
.opacitySlider input[type=range]::-ms-track {
height: 18px;
border: none;
background-color: transparent;
margin: 0;
}
.opacitySlider input[type=range]::-ms-thumb {
background: #69a80e;
height: 20px;
width: 20px;
border: 1px solid #fff;
border-radius: 50%;
height: 17px;
width: 17px;
}
<div class="opacitySlider">
<input step="any" type="range">
</div>