码农公社 210.net.cn 210是何含义?10月24日是程序员节,1024 = 210、210既 210 之意。
项目UI设计的字体为10px。蛋是,看效果图时发现字体仍然不是10px,改变到12px时字体不变,改变到14px时字体变大了。恍然大悟,原来浏览器为了让用户看得清楚,将字体的最小值设置为12px。怎么办?UI设计指标是10px!!!
百度时,各路大神说利用transform: scale(0.5)可以满足要求,具体使用时,发现把整个div宽高都缩放了,不满足要求,
反过来想,可以把红点和字放在两个div上,红点控制宽高,字体上的缩小用transform: scale就可以满足需求了。
具体实现代码如下:
<div v-if="cartNum>=1" class="cartData">
<div class="Num" v-if="cartNum>=1&&cartNum<=99">{{cartNum}}</div>
<div class="Num" v-else-if="cartNum>99">99+</div>
</div>
css部分:
.cartData{ height: .75rem; min-width: .75rem; border-radius: .375rem; background: red; color: white; text-align: center; line-height: .75rem; } .Num{ font-size: 20px; -webkit-transform: scale(0.5); }
上面字体就14*0.8 = 11.2px,可以根据需求做具体调整。
只这样写可不会兼容IE、FF哦,所以再给一个兼容性写法:
.Num{ font-size: 14px; -webkit-transform: scale(0.8); } .Numsize-font{ font-size: 14*0.8px; }
注意:
transform:scale()这个属性只可以缩放可以定义宽高的元素,而行内元素是没有宽高的,我们可以加上一个display:inline-block;