在安卓手機中rem單位border-radius:50%畫圓變形的解決方案

messchow發表於2019-02-16

罪魁禍首

  i{
       display inline-block
       width .08rem
       height .08rem
       background-color #D0021B
       border-radius 50%
   }

畫了個圓,在ios中效果很理想。但是在安卓手機中會有變形的情況存在,渲染方面確實安卓手機幹不過ios(畢竟安卓版本眾多,還有什麼0.5px的線等等的坑,ios都是能完美執行,安卓總得找hack方法)。
當使用px做單位,border-radius 50%出來的圓是不會變形的,可能是安卓在rem計算過程中產生誤差或者有什麼其他因素造成的渲染問題。
網上有很多的辦法,border-radius:9999px;等等,但都沒什麼軟用。

手刃之法

這裡我推薦給大家一種方法,能解決這個問題。

  i{
       display inline-block
       width .16rem
       height .16rem
       background-color #D0021B
       border-radius 50%
       transform scale(.5)
       transform-origin: 0% center
   }

就是使用transform scale,先提前把px/rem相關的值放大一倍。然後用transform scale(.5)縮小一倍,也就是我們想要的倍數。然後你就會驚奇的發現渲染出來的圖案,賊圓!接著用transform-origin調整下圓的位置就大功告成了!
如果對你有幫助,點贊收藏就是對我最大的鼓勵啦!謝謝~~

相關文章