javascript - Input Type Range 控件在 IE 中显示为文本框

标签 javascript jquery html twitter-bootstrap internet-explorer

我在我的 ASP.NET 页面中使用输入类型范围控件,如下所示。这在 Firefox 和 Google Chrome 浏览器中正确显示并且运行良好。

但在 IE-11 中,这显示为输入类型文本控件。当我查看浏览器 HTML 源代码时,我看不到范围控件,它会自动转换为输入文本控件,如下所示。

<input type="text" id="myRange" min="0" value="0" />

我正在为我的项目使用 Bootstrap 。你能提供一些帮助来解决这个问题吗?

<div class="row">
    <div class="col-xs-2">
        <asp:Label ID="Label1" runat="server" Text=""></asp:Label>

    </div>
    <div class="col-xs-8">


        <input type="range" id="myRange" min="0" value="0" />
    </div>
    <div class="col-xs-2">
        <asp:Label ID="Label2" runat="server" Text=""></asp:Label>

    </div>
</div>

最佳答案

这是跨浏览器输入范围的示例,包括 IE10+

input[type=range] {
  -webkit-appearance: none;
  margin: 10px 0;
  width: 100%;
}

input[type=range]:focus {
  outline: none;
}

input[type=range]::-webkit-slider-runnable-track {
  width: 100%;
  height: 12.8px;
  cursor: pointer;
  animate: 0.2s;
  box-shadow: 0px 0px 0px #000000, 0px 0px 0px #0d0d0d;
  background: #ac51b5;
  border-radius: 25px;
  border: 0px solid #000101;
}

input[type=range]::-webkit-slider-thumb {
  box-shadow: 0px 0px 0px #000000, 0px 0px 0px #0d0d0d;
  border: 0px solid #000000;
  height: 20px;
  width: 39px;
  border-radius: 7px;
  background: #65001c;
  cursor: pointer;
  -webkit-appearance: none;
  margin-top: -3.6px;
}

input[type=range]:focus::-webkit-slider-runnable-track {
  background: #ac51b5;
}

input[type=range]::-moz-range-track {
  width: 100%;
  height: 12.8px;
  cursor: pointer;
  animate: 0.2s;
  box-shadow: 0px 0px 0px #000000, 0px 0px 0px #0d0d0d;
  background: #ac51b5;
  border-radius: 25px;
  border: 0px solid #000101;
}

input[type=range]::-moz-range-thumb {
  box-shadow: 0px 0px 0px #000000, 0px 0px 0px #0d0d0d;
  border: 0px solid #000000;
  height: 20px;
  width: 39px;
  border-radius: 7px;
  background: #65001c;
  cursor: pointer;
}

input[type=range]::-ms-track {
  width: 100%;
  height: 12.8px;
  cursor: pointer;
  animate: 0.2s;
  background: transparent;
  border-color: transparent;
  border-width: 39px 0;
  color: transparent;
}

input[type=range]::-ms-fill-lower {
  background: #ac51b5;
  border: 0px solid #000101;
  border-radius: 50px;
  box-shadow: 0px 0px 0px #000000, 0px 0px 0px #0d0d0d;
}

input[type=range]::-ms-fill-upper {
  background: #ac51b5;
  border: 0px solid #000101;
  border-radius: 50px;
  box-shadow: 0px 0px 0px #000000, 0px 0px 0px #0d0d0d;
}

input[type=range]::-ms-thumb {
  box-shadow: 0px 0px 0px #000000, 0px 0px 0px #0d0d0d;
  border: 0px solid #000000;
  height: 20px;
  width: 39px;
  border-radius: 7px;
  background: #65001c;
  cursor: pointer;
}

input[type=range]:focus::-ms-fill-lower {
  background: #ac51b5;
}

input[type=range]:focus::-ms-fill-upper {
  background: #ac51b5;
}

body {
  padding: 30px;
}
<input type="range">

关于javascript - Input Type Range 控件在 IE 中显示为文本框,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/48124154/

相关文章:

javascript - 为什么内联元素底部有额外的边距?

javascript - 如何使用Javascript将<pre>中的CSV数据转换为HTML表格?

Javascript - 插入不包含框的复制文本

html - 响应式背景图片不显示

javascript - 如何将js文件中的变量写入html中

javascript - 如何忽略 javascript 中的 $1 替换反向引用

jquery - 将事件附加到 jquery 中的 window.on ("load", function(){})

Javascript 使用正则表达式替换空格和其他字符

Jquery多选框

html - 使列直接位于彼此之下