我正在尝试样式化一个“range”类型的输入,以便它在多个浏览器中看起来相同。
我找到了一些有用的资源...
https://css-tricks.com/styling-cross-browser-compatible-range-inputs-css/
http://danielstern.ca/range.css/#/
http://www.cssportal.com/style-input-range/的
.但有一个问题似乎没有得到解决,那就是Firefox和其他浏览器认为输入的高度是轨道和拇指组合的高度(或类似的东西),然而,Chrome似乎只认为轨道的高度是整个输入的高度。
这是我的代码(压缩):
.container {
border: 1px solid red;
background-color: lightgreen;
margin-top: 10px;
}
p {
border: 1px solid blue;
margin: 0;
padding: 0;
}
input[type=text],
input[type=range] {
-webkit-appearance: none;
width: 200px;
margin: 0;
padding: 0;
display: block;
height: 50px;
}
input[type=range]:focus {
outline: none;
}
input[type=range]::-webkit-slider-runnable-track {
width: 100%;
height: 4px;
cursor: pointer;
animate: 0.2s;
background: #ccc;
border: 1px solid #333;
}
input[type=range]::-webkit-slider-thumb {
border: 1px solid #333;
height: 30px;
width: 8px;
background: #fff;
-webkit-appearance: none;
margin-top: -7px;
}
input[type=range]:focus::-webkit-slider-runnable-track {
background: #367ebd;
}
input[type=range]::-moz-range-track {
width: 100%;
height: 4px;
cursor: pointer;
animate: 0.2s;
background: #ccc;
border: 1px solid #333;
}
input[type=range]::-moz-range-thumb {
border: 1px solid #333;
height: 30px;
width: 6px;
background: #fff;
}
个字符
如果你在Chrome和Firefox中运行这个程序,你会发现这两个浏览器对待这个问题的方式是不同的。在Chrome中,输入的背景是白色。
如果我删除input[type=range]
上的height: 50px;
,浏览器处理高度的方式也有明显的区别。
正如您所看到的,这会影响范围输入之上和之后的标记的相对定位。
我该如何解决这个问题?
2条答案
按热度按时间ttygqcqt1#
引用自css-tricks.com
测试支持Firefox 23+、Chrome 6+、IE 10+
你错过了我在评论中提到的一些CSS
个字符
xcitsw882#
我喜欢这三个教程的混合:
重要的是要知道,恕我直言,在Firefox中,范围跟踪的宽度取决于字体大小!!
所以这是我完整的CSS部分范围输入(使用一些更少):
字符串
通过使用“位置:容器中的“相对”和范围输入的“位置:绝对”,我们也可以将两个范围滑块放在彼此的顶部,从而获得上限/下限滑块。