在Chrome中使复选框看起来像IE中的一样

时间:2015-06-03 18:33:05

标签: css

IE和Chrome中的复选框看起来不同。

enter image description here

IE

enter image description here

从上面的图片中你可以看到差异。我希望Chrome中的复选框与IE中的相同。

我尝试了 webkit-box-shadow 和其他类似的css属性,但没有运气。你能否建议如何实现这一目标。

5 个答案:

答案 0 :(得分:2)

一种非常简单的方法就是添加-webkit-appearance: none;。但是,您需要设置复选框的样式以匹配您想要的内容。这是一个例子:

http://jsfiddle.net/tzdcbyc5/

<input class="checkbox" type="checkbox">
<input class="checkbox" type="checkbox" checked>

.checkbox {
    position: relative;
    width: 14px;
    height: 14px;
    border: 1px solid #111;
    background: #fff;
    -webkit-appearance: none;
    appearance: none;
}

.checkbox:checked {
    background: url(http://vignette3.wikia.nocookie.net/roblox/images/5/57/Very-Basic-Checkmark-icon.png/revision/latest?cb=20131125154354) no-repeat center center;
    background-size: 100%;
}

答案 1 :(得分:1)

这可以将它与浏览器和操作系统统一起来。

input[type="checkbox"] {
    display: none;
}
input[type="checkbox"] + span:before {
    content: "\2610";
    font-size: 1.25em;
}
input[type="checkbox"]:checked + span:before {
    content: "\2611";
}
<label>
    <input name="test" type="checkbox"/>
    <span>Item</span>
</label>

答案 2 :(得分:0)

这是否符合您的需求? http://codepen.io/anon/pen/dovdWv

基本上,我使用-webkit-appearance: inherit;将复选框重置为初始状态,并使用:after伪元素创建复选标记。

仅在Chrome上测试。

答案 3 :(得分:0)

IE和Google Chrome适用于不同的渲染引擎(布局引擎)。 webkit-box-shadow适用于谷歌浏览器和使用webkit布局引擎的最新Safari。

.squaredFour {
  width: 18px;
  position: relative;
  margin: 18px auto;
}
.squaredFour label {
  width: 18px;
  height: 18px;
  cursor: pointer;
  position: absolute;
  top: 0;
  left: 0;
  background: #fcfff4;
  background: -webkit-linear-gradient(top, #fcfff4 0%, #dfe5d7 40%, #b3bead 100%);
  background: linear-gradient(top, #fcfff4 0%, #dfe5d7 40%, #b3bead 100%);
  border-radius: 4px;
  box-shadow: inset 0px 1px 1px white, 0px 1px 3px rgba(0, 0, 0, 0.5);
}
.squaredFour label:after {
  content: '';
  width: 8px;
  height: 4px;
  position: absolute;
  top: 4px;
  left: 4px;
  border: 3px solid #333;
  border-top: none;
  border-right: none;
  background: transparent;
  opacity: 0;
  -webkit-transform: rotate(-45deg);
      -ms-transform: rotate(-45deg);
          transform: rotate(-45deg);
}
.squaredFour label:hover::after {
  opacity: 0.5;
}
.squaredFour input[type=checkbox] {
  visibility: hidden;
}
.squaredFour input[type=checkbox]:checked + label:after {
  opacity: 1;
}



<section title=".squaredFour">
    <div class="squaredFour">
      <input type="checkbox" value="None" id="squaredFour" name="check" checked />
      <label for="squaredFour"></label>
    </div>
 </section>

http://jsbin.com/saxunaqiqi/1/edit

这适用于Google Chrome和IE 10+浏览器。

答案 4 :(得分:0)

您可以使用“滤镜:亮度”,该滤镜在IE中不起作用,因此不会影响IE,但可以使chrome复选框和单选按钮看起来几乎是白色的,就像这样:

input[type="checkbox"],
input[type="radio"] {
    filter: brightness(1.2);
}

/* Set disabled back to grey */
input[type="checkbox"]:disabled,
input[type="radio"]:disabled {
    filter: brightness(0.9);
}