css input type=“color”边框和所选颜色之间的间距

bqucvtff  于 2023-06-25  发布在  其他
关注(0)|答案(3)|浏览(190)

我在颜色输入方面有问题

正如你所看到的,在黑色边框和颜色之间有一个空白,但是我想把它去掉

#color-picker {
  border: 5px solid black;
  border-radius: 5px;
  width: 207px;
  height: 60px;
  padding: 0px;
  appearance: none;
  cursor: pointer;
  background: none;
}
<!-- some other html up here -->
<div class="color-holder">
  <div class="content">
    <div id="colors">
      <!-- some colors here -->
    </div>
    <input type="color" id="color-picker">
  </div>
</div>
<!-- some other html down here -->

我认为padding: 0可以帮助,但它什么也没有做,我只是不知道该怎么做

ui7jx7zq

ui7jx7zq1#

你有没有试过使用outline属性?如果你使用它,请记住可访问性

xzv2uavs

xzv2uavs2#

您可以为输入创建标签并隐藏输入。用一些JavaScript代码就可以实现你想要的

var theInput = document.getElementById("color-picker");
var theLabel = document.getElementById("trigger-color-picker");

theInput.addEventListener("input", function() {
  theLabel.style.background = theInput.value;
}, false);
theInput.dispatchEvent(new Event('input'));  // trigger the input event on load
#trigger-color-picker {
    border: 5px solid black;
    border-radius: 5px;
    width: 207px;
    height: 60px;
    padding: 0px;
    appearance: none;
    cursor: pointer;
    display: block;
 }
 #color-picker{
  display: none;
 }
<!-- some other html up here -->
<div class="color-holder">
    <div class="content">
        <div id="colors">
            <!-- some colors here -->
        </div>
        <label id="trigger-color-picker" for="color-picker"></label>
        <input type="color" id="color-picker">
    </div>
</div>
<!-- some other html down here -->

这里的想法是:输入类型颜色默认有样式,您不能更改它。因此,我们将创建一个自定义的,而不是改变输入样式,我们将改变标签样式

vaj7vani

vaj7vani3#

感谢大家的一些想法,但我终于解决了这个问题与::-webkit-color-swatch::-webkit-color-swatch-wrapper

#color-picker::-webkit-color-swatch {
    border: none;
}

#color-picker::-webkit-color-swatch-wrapper {
    padding: 0px;
}

border: none删除颜色值周围的1px白色轮廓
padding: 0px删除边框和颜色值之间的间隙
显然,还需要添加::-moz-color-swatch::-moz-color-swatch-wrapper相同的 prop

相关问题