Geo*_*oué 5 css range css3 less microsoft-edge
我创建了一个滑块。
我创建了一个Codepen来解释和显示我的问题:https ://codepen.io/glalloue/pen/QGKqNd
CSS(更少)应用:
.form input[type=range] {
z-index: 1;
align-self: stretch;
height: 3px;
-webkit-appearance: none;
appearance: none;
border: none;
margin: 0;
&::-webkit-slider-thumb {
-webkit-appearance: none;
appearance: none;
border: none;
width: 2.5rem;
height: 2.5rem;
background-color: white;
border-radius: 50%;
box-shadow: inset 0 0 0 1px #cccccc, 0 2px 4px rgba(0, 0, 0, 0.2);
}
&::-ms-thumb {
appearance: none;
border: none;
width: 2.5rem;
height: 2.5rem;
background-color: pink;
border-radius: 50%;
box-shadow: inset 0 0 0 1px #C0C0C0, 0 2px 4px rgba(0, 0, 0, .2);
}
}
Run Code Online (Sandbox Code Playgroud)
这是Internet Explorer的类似问题:::-ms-thumb出现在轨道后面
建议的解决方案是为::-ms-track增加边距,但没有成功。
有什么方法可以使我在MS Edge中的::-ms-thumb看起来与chrome上的完全相同?
问题是(间接)background-image
在输入上:
<input name="perimeter" id="perimeter" style="background-image: -webkit-linear-gradient(left, transparent 0%, rgba(164, 223, 253, 0.8) 1%, rgba(164, 223, 253, 0.8) 25%, black 26%, black 100%);" type="range" min="0" max="4" step="1" value="1">
Run Code Online (Sandbox Code Playgroud)
background-image
在 Chrome 和 Safari 上设置拇指前后的颜色是必要的。
为了解决问题,我需要在 css 上设置高度值.form input[type=range]
。
但如果我这样做,背景图像将占据所有高度值。它可以在 Chrome 上运行,但不能在 MS Edge 上运行。
因此,要解决此问题,有必要使用 MS Edge 浏览器的特性:
background-image
输入。-ms-fill-lower
并-ms-fill-upper
设置拇指之前和之后的颜色结果是:
<!-- Android & iOS -->
<input id="perimeter" type="range" min="0" max="4" step="1" style="background-image:-webkit-linear-gradient(left, transparent 0%, rgba(164,223,253,0.8) 1%, rgba(164,223,253,0.8) {{ perimeter *100 / (distances.length -1) | number:0 }}%, black {{ perimeter *100 / (distances.length -1) + 1 | number:0 }}%, black 100%)"/>
<!-- Windows -->
<input id="perimeter" type="range" min="0" max="4" step="1" style="height: 2.5rem;"/>
Run Code Online (Sandbox Code Playgroud)
您需要调节输入显示。如果您使用 Angular,则ng-if
仅在 Android 和 ios 上显示第一个输入,在 Windows 上显示第二个输入。
更少的文件是:
@thumb-color: white;
@thumb-radius: 50%;
@thumb-height: 2.5rem;
@thumb-width: 2.5rem;
@track-width: 100%;
@track-height: 3px;
@track-fill-lower-color: rgba(164,223,253,0.8);
@track-fill-upper-color: black;
.track() {
-webkit-appearance: none;
width: @track-width;
height: @track-height;
cursor: pointer;
}
.thumb() {
-webkit-appearance: none;
border: none;
height: @thumb-height;
width: @thumb-width;
border-radius: @thumb-radius;
background: @thumb-color;
cursor: pointer;
box-shadow: inset 0 0 0 1px grey, 0 2px 4px rgba(0, 0, 0, .2);
}
input[type=range] {
-webkit-appearance: none;
margin: @thumb-height/2 0;
width: @track-width;
&::-webkit-slider-runnable-track {
.track();
border: none;
}
&::-webkit-slider-thumb {
.thumb();
-webkit-appearance: none;
margin-top: -1.25rem; // @thumb-height / 2
}
&::-moz-range-track {
.track();
border: none;
}
&::-moz-range-thumb {
.thumb();
}
&::-ms-track {
.track();
background: transparent;
color: transparent;
}
&::-ms-thumb {
.thumb();
}
&::-ms-fill-lower {
background: @track-fill-lower-color;
}
&::-ms-fill-upper {
background: @track-fill-upper-color;
}
}
Run Code Online (Sandbox Code Playgroud)
归档时间: |
|
查看次数: |
2726 次 |
最近记录: |