【问题标题】:Range input refuses to change background color and height范围输入拒绝更改背景颜色和高度
【发布时间】:2019-08-30 22:29:41
【问题描述】:

所以我正在为广播电台创建一个网站,但遇到了一个问题。我们用于音量的范围输入实际上拒绝更改其背景颜色和高度。为了这个项目的目的,我正在使用 SASS(使其成为 scss 文件类型)。

我进行了一些研究,并尝试了一些互联网推荐的方法,但不幸的是,没有一个奏效。我尝试使用backgroundbackground-color 甚至color 字段来尝试解决我的问题。通过将-webkit-appearance 设置为none,我确保覆盖所有可能阻止我这样做的内容。

这是我的 hbs 文件中滑块及其父元素的内容:

<div class="rootplayer">
  <div>
    <img class="picture" alt='Artist art' src="{{songart}}" width="170px">
    <div class="playerinfo">
      <p>On air: {{dj}}</p>
      <hr>
      <p>Up next: AJS Show</p>
      <hr>
      <p>Currently playing: {{songTitle}}</p>
      <hr>
      <p>Current Listeners: {{currentListeners}}</p>
    </div>
    <audio controls="" id="player">
      <source src="http://radio.nowhits.uk:8000/radio.mp3" type="audio/mpeg">
    <p>Your browser does not support the audio element.</p>
    </audio>
  </div>
  <div class="playercontrols">
    <i class="fas fa-play" onclick="play()" id="play"></i>
    <i class="fas fa-pause" onclick="pause()" id="pause"></i>
    <input type="range" min="0" max="1" value="0.5" step="0.01" class="slider" id="volume">
    <script src="scripts/volume.js"></script>
    <script src="scripts/playpause.js"></script>
  </div>
</div>

这是我的 scss 文件中滑块对象的内容:

.slider {
    -webkit-appearance: none;
    height: 1px;
    width: 65%;
    background-color: red;
    outline: none;
    opacity: 0.7;
    -webkit-transition: .2s;
    transition: opacity .2s;
    cursor: pointer;
}

.slider::-webkit-slider-thumb {
    -webkit-appearance: none;
    appearance: none;
    width: 12px;
    height: 12px;
    background: #000;
    border-radius: 50%;
}

.slider::-moz-range-thumb {
    width: 12px;
    height: 12px;
    background: #000;
    cursor: pointer;
    border-radius: 50%;
}

显然,预期的输出应该是红色背景和 1px 的高度(应该是一条非常细的线),但我得到的是 this

【问题讨论】:

  • 您使用哪种浏览器?我在 chrome 中尝试了您的代码,将 height 更改为 1px 并且效果很好。
  • @ItzhakAvraham 很有意思,我也用 Chrome... 说说你用的是什么,你用的是原版 css 还是 (node-)sass 文章中提到的?
  • 当然,我用的是scss(你的代码是scss而不是sass,有区别)。您使用的是 chrome,因为范围输入看起来与您附加的图片不同。为什么范围调谐器在你的图片中是一个圆圈?
  • 这就是原因,我没有在问题中包含这个,因为这是我问的问题,差别不大,但我们开始了(再次查看帖子,我已经添加了样式对于滑块拇指)

标签: css sass


【解决方案1】:

尝试添加这个:

.slider::-webkit-slider-runnable-track {
  background: red;
}

.slider::-moz-range-track {
  background: red;
}

.slider::-ms-track {
  background: red;
}

查看此网站了解更多自定义设置:http://danielstern.ca/range.css

【讨论】:

  • 好吧,这似乎解决了我的问题,我想说明它的行为在这之后真的很奇怪,让我告诉你,this 就是它现在正在做的事情
  • 我不明白你为什么把高度设置为 0px :它会隐藏轨道。你期待什么样的结果?能提供一张图纸吗?
  • 我也不知道为什么我把它设置为 0px,虽然现在是 1px 但我现在正试图摆脱灰色方块
  • 尝试了很多方法来摆脱它...没有一个有效,这是我尝试过的:background: transparent; background-color:red(总共 3 个:.slider, .slider::-webkit-slider- runnable-track, .slider::-moz-range-track),尝试将各种背景设置为透明但没有
  • 看这个:jsfiddle.net/cnxy9hmz范围控制下没有灰色背景...
猜你喜欢
  • 1970-01-01
  • 2018-07-31
  • 2021-03-07
  • 2019-06-26
  • 1970-01-01
  • 1970-01-01
  • 2019-08-14
  • 1970-01-01
  • 2013-02-09
相关资源
最近更新 更多