我有一个用CSS编写的复选框切换 - 我使用伪元素 ::after
和::before
::来绘制到{{3 (我也使用 bootstrap 的基本样式)。
css如下:
input.toggler{
visibility: hidden;
position: relative;
height: 35px;
width: 50px;
margin: 0;
cursor: pointer;
}
input.toggler::before, input.toggler::after {
visibility: visible;
}
input.toggler::before {
background-color: #fff;
box-shadow: inset 0 0 2px gray;
width: 34px;
border-radius: 15px;
height: 14px;
content: ' ';
display: inline-block;
transition: background 0.6s;
transform: translateY(-60%);
position: absolute;
top: 53%;
}
input.toggler::after {
width: 20px;
height: 20px;
content: ' ';
display: block;
transform: translateY(-50%);
position: absolute;
top: 50%;
background-color: #2cace3;
border-radius: 100%;
box-shadow: 0 1px 1px 0 rgba(0, 0, 0, 0.24), 0 0 1px 0 rgba(0, 0, 0, 0.12);
transition: margin 0.4s, width 0.3s;
}
input.toggler:checked::before {
background-color: #2cace3;
opacity: .5;
}
input.toggler:checked::after {
margin-left: 15px;
}
Chrome如何以不同于Firefox的方式处理CSS?
或者,是什么让这段代码与 Firefox 不兼容,而不是 Chrome ?
MDN文档
建议::after
是有效的Firefox语法,但正如此https://developer.mozilla.org/en-US/docs/Web/CSS/::after所示,这仅适用于Chrome。