Google Chrome vertical <input type =“range”/>

时间:2011-02-15 08:50:58

标签: html css google-chrome

在歌剧中,我可以做以下

<style>
#range{
 width: 20px;
 heigth: 300px;
}
</style>

<input type="range" id="range" />

它会渲染一个垂直滑块。但是,这似乎不适用于chrome。有没有办法可以做到这一点? (我不是在寻找任何jQuery滑块或任何东西)

5 个答案:

答案 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>