IE和Chrome中的复选框看起来不同。
铬
IE
从上面的图片中你可以看到差异。我希望Chrome中的复选框与IE中的相同。
我尝试了 webkit-box-shadow 和其他类似的css属性,但没有运气。你能否建议如何实现这一目标。
答案 0 :(得分:2)
一种非常简单的方法就是添加-webkit-appearance: none;
。但是,您需要设置复选框的样式以匹配您想要的内容。这是一个例子:
<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);
}