前言
有過移動端開發經驗的人都知道,ios跟android頁面的 像素(px)密度 不同。這就有點尷尬了,由於在android這邊一個div 180px剛恰好,可是去了ios那邊可能就不同了,可能會形成頁面變得扭曲。
爲了解決這個問題,救星——rem出現了。它的值默認是1rem == 16px,這樣子的話計算起來就不是很方便了。因此不少人喜歡把它設置成1rem == 10px。10/16就是 0.625。咱們的主角出現了!html
怎麼設置rem
不少人知道在根節點設置,也就是 html{font-size:62.5%;} 就能夠了。我不知道是誰一開始就這麼說的。但我知道這我的也太不負責任了。爲何呢?由於谷歌只容許font-size最小是12px.android
<!DOCTYPE html> <html> <head> <meta charset="utf-8"> <title>測試rem</title> <style> html{font-size: 62.5%;} .px{width: 100px;height: 10px;background-color: red;} .rem{width: 10rem;height: 10px;background-color: blue;} </style> </head> <body> <div class="px"></div> <div class="rem"></div> </body> </html>
按網上那些人的道理,兩個div本應該同樣寬的。可是呢,現實是這個樣子的......(實際上你用谷歌是跟下圖,但用萬惡的IE打開是藍色比較短,火狐是同樣長。)各個瀏覽器還不同,這非常尬尷啊!ios
如何正確設置rem的大小
仍是在根節點設置,但代碼就要改爲這樣了。瀏覽器
html{font-size: 625%;}
或者測試
html{font-size:100px;}
不過如今的1rem 是等於 100px,可是整的倍數比較容易計算啊。並且IE、火狐、谷歌等等瀏覽器都兼容的。不會說在各個瀏覽器還長短不同,這種狀況不存在的!spa