在 Firefox 中自定义检查

custom check in firefox

我遇到了真正的问题,

它适用于大多数浏览器(仍在测试中),但是 Firefox 是一个真正的问题。

选中后,复选框应该是一个圆圈和一个绿色 tick/check。

但是在 Firefox 中我得到了方框和一个黑色勾号

.regular-checkbox {
  display: inline-block;
  border-radius: 50%;
  width: 38px;
  height: 38px;
  border: 1px solid #ccc;
}
.regular-checkbox input {
  opacity: 0;
  position: absolute;
}
.regular-checkbox:active,
.regular-checkbox:checked:active {
  box-shadow: 0 1px 2px rgba(0, 0, 0, 0), inset 0 1px 3px rgba(0, 0, 0, 0);
  -moz-box-shadow: 0 1px 2px rgba(0, 0, 0, 0), inset 0 1px 3px rgba(0, 0, 0, 0);
  -webkit-box-shadow: 0 1px 2px rgba(0, 0, 0, 0), inset 0 1px 3px rgba(0, 0, 0, 0);
}
.regular-checkbox:checked {
  background-color: #e9ecee;
  box-shadow: 0 1px 2px rgba(0, 0, 0, 0), inset 0 -15px 10px -12px rgba(0, 0, 0, 0), inset 15px 10px -12px rgba(255, 0, 0, 0);
  -moz-box-shadow: 0 1px 2px rgba(0, 0, 0, 0), inset 0 -15px 10px -12px rgba(0, 0, 0, 0), inset 15px 10px -12px rgba(255, 0, 0, 0);
  -webkit-box-shadow: 0 1px 2px rgba(0, 0, 0, 0), inset 0 -15px 10px -12px rgba(0, 0, 0, 0), inset 15px 10px -12px rgba(255, 0, 0, 0);
}
.regular-checkbox:checked:after {
  content: '14';
  font-size: 14px;
  position: absolute;
  top: 0;
  left: 3px;
  color: #19a73e;
}
.big-checkbox {
  padding: 18px;
}
.big-checkbox:checked:after {
  font-size: 37px;
  top: -7px;
  left: 10px;
}
<label for='product-45-45' class="active">
  <input type='checkbox' style="float: left" class='regular-checkbox big-checkbox ' checked='checked' id='product-45-45' name='product_id_page-0[45-45]' value='45-45' data-first_price="11.99" data-second_price="" data-paysys="" />

  <div class="accord-text">
    <strong>title</strong>
  </div>
</label>

此代码以相同的方式在每个浏览器上运行。

HEAVY CHECK MARK ✔ - 在 Firefox 中看起来不一样,所以我更改为 CHECK MARK ✓

最好的方法是使用像 FontAwesome 这样的图标字体。

Working Fiddle

HTML:

<label for="checkbox">
  <div class="accord-text">
    <strong>title</strong>
  </div>
  <div class="mycheckbox">
    <input id="checkbox" class="regular-checkbox" type="checkbox" name="checkbox"/>
    <span class="newcheckbox"></span>
  </div>
</label>

CSS:

.mycheckbox {
  display: inline-block;
  position: relative;
  width: 17px;
  height: 17px;
  border: 1px solid gray;
  border-radius: 17px;
}

.mycheckbox > input[type="checkbox"] {
  opacity: 0;
}

.mycheckbox > .newcheckbox:before {
  content: '13';
  opacity: 0;
  position: absolute;
  top: 3px;
  left: 2px;
  font-size: 15px;
  color: #19a73e;
  transition: ease 0.1s;
  -webkit-transition: ease 0.1s;
  -moz-transition: ease 0.1s;
  -ms-transition: ease 0.1s;
  -o-transition: ease 0.1s;
}

.mycheckbox > input[type="checkbox"]:checked ~ .newcheckbox:before {
   opacity: 1;
   top: 1px;
}

.accord-text {
  display: inline-block;
}

下次您需要禁用您的复选框和"design"您自己的复选框。 每次都有效。