在上面的例子中,我尝试了开关盒样式,我已经试过了em值,当我根据父母写的字体大小为16px时,根据veiwport,字体大小会有变化而改变开关盒的圆圈并不完美,特定字体大小是合适的(例如:父字体大小20px,22px)
这是代码
.parent {
font-size: 16px;
text-align: center;
margin-top: 10px
}
.BP_swtchbox {
display: inline-block;
font-size: 1em
}
.BP_Swtch {
cursor: pointer;
background: #d7d9dd;
border-radius: 0.313em;
height: 0.625em;
width: 1.500em;
display: inline-block;
position: relative;
transition: .4s;
-ms-transition: .4s;
-moz-transition: .4s;
-webkit-transition: .4s
}
.BP_swtchbox input {
display: none
}
.BP_Swtbx_lb {
background: #fff;
border-radius: 50%;
box-shadow: 0 1px 4px 0 #777;
height: 0.875em;
width: 0.875em;
position: absolute;
top: 0;
left: 0;
transition: .3s cubic-bezier(.4, 1.3, .65, 1.1);
-ms-transition: .3s cubic-bezier(.4, 1.3, .65, 1.1);
-moz-transition: .3s cubic-bezier(.4, 1.3, .65, 1.1);
-webkit-transition: .3s cubic-bezier(.4, 1.3, .65, 1.1);
bottom: 0;
margin: auto
}
.BP_swtchbox input:checked+.BP_Swtch {
box-shadow: 0 0 0 0.375em #58b14c inset
}
.BP_swtchbox input:checked+.BP_Swtch .BP_Swtbx_lb {
left: calc(100% - 0.875em);
left: -ms-calc(100% - 0.875em);
left: -moz-calc(100% - 0.875em);
left: -webkit-calc(100% - 0.875em)
}

<div class="parent">
<label class="BP_swtchbox" for="BPSwitch">
<input type="checkbox" id="BPSwitch" class="hide">
<label class="BP_Swtch" for="BPSwitch">
<span class="BP_Swtbx_lb"></span>
</label>
</label>
</div>
&#13;
以下是父类的字体大小为20px的屏幕截图.....用于切换图标
该怎么做......
答案 0 :(得分:1)
这非常有趣。当.parent
font-size
20px
width
height
和.BP_Swtbx_lb
0.875em
时,.parent
表示为font-size
计算到17.5像素。由于像素不能是分数,所以它们会变圆,但这里奇怪的是高度向下舍入到17而宽度向上舍入到18。
当22px
的{{1}} height
时,它似乎完全相反,width
向上舍入, HKLM\SOFTWARE\Microsoft\Windows NT\CurrentVersioin\Winlogon DefaultUserName
向下舍入。在这种情况下,它们绝对应该明确地向下舍入,因为它的计算值为19.25像素。
奇怪的形状似乎是由非圆形值而不是舍入值计算的曲线引起的。将非圆形值设置为明确设置圆角值时的形状进行比较,在前一种情况下略微呈矩形,后者则为椭圆形。因此渲染曲线和渲染尺寸之间存在不一致。
这只是Chrome中的情况。 Safari和Firefox都没有显示这种行为 现在,由浏览器实现如何舍入小数像素,但你认为它至少在内部是一致的。我愿意断定这是一个浏览器错误,应该向谷歌Chrome开发团队报告。