我知道这是一个老问题并且已经多次回答,但我无法弄清楚如何将修复基础与其他示例结合起来。
确定复选框样式后,它在Chrome和Opera中看起来很不错(它应该看起来如何),但在Firefox和IE中它仍然看起来像丑陋的复选框。有没有一种简单的方法来解决这个问题,所以它在所有浏览器中看起来都一样如果是这样,那些对我的CSS有了全新视角的人请帮助我解决这个问题。我正在使用联系表单7,因此HTML不可更改,或者我会根据其他教程自行更改HTML代码。
/*Below is for Radio Buttons*/
.wpcf7-form-control.wpcf7-radio input[type="radio" ] {
margin: 5px 20px 0px 3px;
border: 2px solid #35a4d5;
padding: 10px;
-webkit-appearance: none;
border-radius: 50%;
}
.wpcf7-list-item.first .wpcf7-list-item-label,.wpcf7-list-item.last .wpcf7-list-item-label {
font-size: 18px;
vertical-align: 5px;
}
.wpcf7-form-control.wpcf7-radio input[type="radio" ]:checked{
background:#555;
box-shadow: inset 0px 0px 0px 3px white;
-webkit-box-shadow: inset 0px 0px 0px 3px white;
-moz-box-shadow: inset 0px 0px 0px 3px white;
-o-box-shadow: inset 0px 0px 0px 3px white;
-webkit-border-radius: 100%;
-moz-border-radius: 100%;
-o-border-radius: 100%;
}
.wpcf7-form-control.wpcf7-radio input:focus{
outline:none;
}
/*END*/
/*Below is for Check Boxes*/
.wpcf7-form-control.wpcf7-checkbox input[type="checkbox" ]{
margin: 5px 4px 0px 3px;
border: 2px solid #35a4d5;
padding: 10px;
-webkit-appearance: none;
}
.wpcf7-list-item.first.last .wpcf7-list-item-label{
font-size: 20px;
vertical-align: 5px;
}
.wpcf7-form-control.wpcf7-checkbox input[type="checkbox" ]:checked{
background:#555;
box-shadow: inset 0px 0px 0px 3px white;
-webkit-box-shadow: inset 0px 0px 0px 3px white;
-moz-box-shadow: inset 0px 0px 0px 3px white;
-o-box-shadow: inset 0px 0px 0px 3px white;
}
.wpcf7-form-control.wpcf7-checkbox input:focus{
outline:none;
}
/*END*/
<span class="wpcf7-form-control-wrap RVCategory">
<span class="wpcf7-form-control wpcf7-radio">
<span class="wpcf7-list-item first">
<span class="wpcf7-list-item-label" style="">Motorhome
</span>
<input type="radio" name="RVCategory" value="Motorhome" checked="checked">
</span>
<span class="wpcf7-list-item last">
<span class="wpcf7-list-item-label">Trailer
</span>
<input type="radio" name="RVCategory" value="Trailer">
</span>
</span>
</span>
<p></p>
<span class="myCheckboxes">
<span class="wpcf7-form-control-wrap checkbox-112">
<span class="wpcf7-form-control wpcf7-checkbox">
<span class="wpcf7-list-item first last">
<input type="checkbox" name="checkbox-112[]" value="Electric Generator">
<span class="wpcf7-list-item-label">Electric Generator</span>
</span>
</span>
</span>
</span>
答案 0 :(得分:1)
我刚刚做了一个项目,需要自定义复选框和无线电样式,并要求符合跨浏览器标准。不幸的是,只需通过样式化input
标记,您就无法在Firefox和大多数IE中实现这一目标。如果您愿意重新构建HTML,这是我使用的方法。
我很快把它拼凑在一起所以我可能错过了我在制作中使用过的东西。非常简单,HTML只需要在输入后输入和标签跟随。
<input type="checkbox" id="checkbox1" name="checkbox">
<label for="checkbox1">Checkbox One</label>
现在CSS看起来像:
/* Hide inputs visually from being seen - don't use display: none as this will break in accessibility */
input[type="checkbox"],
input[type="radio"] {
float: left;
opacity: 0.01;
position: absolute;
}
input[type="checkbox"] + label,
input[type="radio"] + label {
display: inline-block;
line-height: 1.4;
margin: 0;
padding-left: 30px;
position: relative;
}
/* Actually create a fake input element with pseudo */
input[type="checkbox"] + label::before,
input[type="radio"] + label::before {
background: no-repeat center center;
border: 1px solid #a6a6a6;
border-radius: 3px;
content: "";
cursor: pointer;
display: block;
height: 20px;
left: 0;
position: absolute;
top: -1px;
width: 20px;
}
/* Fake Styling for checked state */
input[type="checkbox"]:checked + label::before,
input[type="radio"]:checked + label::before {
background-color: #00ba00;
background-image: url(something);
background-size: 10px 8px;
border-color: #00ba00;
}
/* Because this element isn't actually an input I've added the accessibility focus rings */
input[type="checkbox"]:focus + label::before,
input[type="radio"]:focus + label::before {
outline: auto 5px -webkit-focus-ring-color;
}
/* Radio button styling */
input[type="radio"] + label::before {
border-radius: 50%;
}
input[type="radio"]:checked + label::before {
background-color: #00ba00;
background-image: url(something);
background-position: center center;
background-repeat: no-repeat;
background-size: 8px 8px;
}
中的代码