首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >在safari中设置焦点输入的样式

在safari中设置焦点输入的样式
EN

Stack Overflow用户
提问于 2016-10-18 03:13:31
回答 1查看 1.6K关注 0票数 1

我正在尝试将自定义样式应用于inputtype=range,但在Safari中应用这些样式时遇到问题。Chrome、FF和IE工作正常(尽管FF和IE没有在下面的代码片段中列出)。pe-color()是调用存储的变量颜色的外部scss函数。

代码语言:javascript
复制
input[type=range] {
  -webkit-appearance: none;
  -moz-appearance: none;
  border: none;
  width: 12%;
  outline: none;
  background: none;
}
input[type=range]:focus {
  outline: none;
}
input[type=range]::-webkit-slider-runnable-track {
  height: $slider-track-height;
  background: pe-color(hyperdrive);
}
input[type=range]::-webkit-slider-thumb {
  -webkit-appearance: none;
  box-shadow: 0px 0px 5px rgba(0, 0, 0, 0.1);
  border: 1px solid pe-color(hairline-gray);
  height: $slider-thumb-diameter;
  width: $slider-thumb-diameter;
  border-radius: 50%;
  background: pe-color(white);
  margin-top: -8px;
}
input[type=range]:focus::-webkit-slider-thumb {
  border: 1px solid pe-color(basic-blue);
  box-shadow: 0px 0px 5px pe-color(basic-blue);
}
input[type=range]::-moz-focus-outer {
  border: 0;
}
input[type=range]::-moz-range-track {
  height: $slider-track-height;
  background: pe-color(hyperdrive);
  border: none;
}
input[type=range]::-moz-range-thumb {
  box-shadow: 0px 0px 5px rgba(0, 0, 0, 0.1);
  border: 1px solid pe-color(hairline-gray);
  height: $slider-thumb-diameter;
  width: $slider-thumb-diameter;
  border-radius: 50%;
  background: pe-color(white);
}
input[type=range]:focus::-moz-range-thumb {
  border: 1px solid pe-color(basic-blue);
  box-shadow: 0px 0px 5px pe-color(basic-blue);
}
input[type=range]::-ms-track {
  height: $slider-track-height;
  border-color: transparent;
  border-width: 11px 0;
  background: transparent;
  color: transparent;
}
input[type=range]::-ms-thumb {
  box-shadow: 0px 0px 5px rgba(0, 0, 0, 0.1);
  border: 1px solid pe-color(hairline-gray);
  height: $slider-thumb-diameter;
  width: $slider-thumb-diameter;
  border-radius: 50%;
  background: pe-color(white);
}
input[type=range]::-ms-fill-lower {
  background: pe-color(hyperdrive);
}
input[type=range]::-ms-fill-upper {
  background: pe-color(hyperdrive);
}
input[type=range]:focus::-ms-thumb {
  border: 1px solid pe-color(basic-blue);
  box-shadow: 0px 0px 5px pe-color(basic-blue);
}

通过各种谷歌搜索,我看到了一些关于“大纲”样式的东西,但我没有成功地使用它。希望能深入了解是否存在针对此元素的伪类样式。

EN

回答 1

Stack Overflow用户

发布于 2016-10-18 07:06:07

你要找的一切都在这里https://css-tricks.com/styling-cross-browser-compatible-range-inputs-css/

您看不到任何更改的原因是,您可能没有覆盖默认的浏览器样式,也没有删除滑块的所有轮廓和图像。

请查看这个代码,您可以随意使用它http://codepen.io/vveleva/pen/gwBbGB

代码语言:javascript
复制
input[type=range] {
  -webkit-appearance: none; /* Hides browser default slider */
  width: 100%;
  background: transparent;
}

input[type=range]::-webkit-slider-thumb {
  -webkit-appearance: none;
}

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

input[type=range]:focus::-webkit-slider-thumb {
  /* changes slider on click and drag */
  border: 1px solid red;
  box-shadow: 0px 0px 5px red;
}

input[type=range]::-ms-track {
  width: 100%;
  cursor: pointer;
  /* Hides the slider so custom styles can be added */
  background: transparent; 
  border-color: transparent;
  color: transparent;
}

input[type=range]::-webkit-slider-thumb {
  -webkit-appearance: none;
  border: 1px solid #000;
  height: 26px;
  width: 26px;
  border-radius: 3px;
  background: #fff;
  cursor: pointer;
  margin-top: -6px;
  box-shadow: 1px 1px 1px #000, 0px 0px 1px #0d0d0d;
}



input[type=range]::-webkit-slider-runnable-track {
  width: 100%;
  height: 16px;
  cursor: pointer;
  box-shadow: 1px 1px 5px black;
  background: gray;
  border-radius: 1.3px;
}

input[type=range]:focus::-webkit-slider-runnable-track {
  background: blue;
  border: 0.2px solid red;
}

我希望这能帮到你!

票数 1
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/40093960

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档