【发布时间】:2015-01-07 14:36:18
【问题描述】:
例如,查看this fiddle(请不要在 IE 中)。
(您可以在this link 看到该控件的说明。)
她使用 -ms-fill-lower 和 -ms-fill-upper 来控制拇指两侧的颜色,如下所示:
input[type=range]::-ms-track {
width: 300px;
height: 5px;
/*remove bg colour from the track, we'll use ms-fill-lower and ms-fill-upper instead */
background: transparent;
/*leave room for the larger thumb to overflow with a transparent border */
border-color: transparent;
border-width: 6px 0;
/*remove default tick marks*/
color: transparent;
}
input[type=range]::-ms-fill-lower {
background: #777;
border-radius: 10px;
}
input[type=range]::-ms-fill-upper {
background: #ddd;
border-radius: 10px;
}
input[type=range]::-ms-thumb {
border: none;
height: 16px;
width: 16px;
border-radius: 50%;
background: goldenrod;
}
input[type=range]:focus::-ms-fill-lower {
background: #888;
}
input[type=range]:focus::-ms-fill-upper {
background: #ccc;
}
(来源:brennaobrien.com)
但是,据我所知,... ::-ms- ... 伪元素仅适用于 IE。在 Chrome 中,上面的代码似乎没有任何效果。在 Chrome 中,我得到了这样的结果:
(来源:brennaobrien.com)
如何实现跨浏览器的效果?
谢谢!
【问题讨论】:
-
IE 之外可能不支持这些伪元素。所以你无能为力。
-
谢谢,@Paulie_D。我的目标不一定是使用 -ms-fill-lower 来达到效果。这只是为了完成工作。有没有我可以使用的不同元素?
-
据我所知。如果有,它可能需要 JS。这么看 - 它是跨浏览器的,只是 IE 用户得到了更多的东西。其他浏览器的用户永远不会知道。
标签: html css cross-browser slider pseudo-element