css - 复选框自定义样式在 Mozilla Firefox 浏览器中不起作用
问题描述
我正在尝试为复选框添加自定义样式,它在 Google Chrome 和 Safari 浏览器中都可以正常工作,但在 Mozilla Firefox 中不起作用。以下是我写的样式。
input[type='checkbox'] {
-webkit-font-smoothing: antialiased;
text-rendering: optimizeSpeed;
width: 13px;
height: 13px;
margin: 0;
margin-right: 1px;
display: block;
float: left;
position: relative;
cursor: pointer;
}
input[type='checkbox']:after{
content: "";
vertical-align: middle;
text-align: center;
line-height: 13px;
position: absolute;
cursor: pointer;
height: 25px;
width: 25px;
left: -2;
top: -2;
font-size: 10px;
background: #fff;
border: 1px solid #D5D8EC;
border-radius: 3px;
display: flex;
align-items: center;
justify-content: center;
}
// input[type='checkbox']:hover:after, input[type='checkbox']:checked:hover:after {
// background: #fff;
// content: url(../img/tick.png);
// color: #000;
// }
input[type='checkbox']:checked:after{
background: #fff;
content: url(../img/tick.png);
color: #000;
}
请帮助我
解决方案
形式上,输入等元素不支持伪元素。参见例如https://developer.mozilla.org/en-US/docs/Web/CSS/::after
注意: ::before 和 ::after 生成的伪元素包含在元素的格式框中,因此不适用于替换元素,例如 , 或
元素。
然而,在某些情况下,某些浏览器似乎确实允许这样的伪元素,并且在这个问题的情况下,Safari 和 Chrome 在复选框类型的输入元素上实现伪元素。Firefox 没有,而且在这方面似乎更严格地遵循标准。
因此,问题是如何处理它?有各种技巧,其中之一是添加一个包含元素,例如跨度并给出所需的格式。这当然假设您可以控制 HTML
推荐阅读
- c# - 使用 FTDI 创建 UWP 应用程序的问题
- graph - Dijsktra 算法 - 先行者
- javascript - 即使其中有数据,我的数组中的项目也未定义
- javascript - 如何从文件输入中读取文件内容?
- html - 半容器,半容器流体
- python - 表检测任务(TableBank & Detectron):UnicodeDecodeError:'ascii'编解码器无法解码位置 0 的字节 0x80:序数不在范围内(128)
- live-streaming - OpenTok:视频元素暂停警告,无法取消发布
- hadoop - 两个具有 Kerberos 身份验证的 Hadoop 集群
- c# - 将一个类实例的每个字段复制到另一个类实例以保持数据绑定
- python - 需要帮助使用可变数量的列动态添加到数据框