移動端line-height問題


轉抄:http://blog.csdn.net/wjnf012/article/details/54316058


最近碰到了這樣一個問題,設置line-height屬性讓文字垂直居中,發現在PC端肉眼觀察是居中的,但是在移動端(Android)上總是發現文字偏上,所以有以下的研究。 搜索發現有人說在Android上會有2px的向上偏移,但是實踐證明並不是,下面上圖(本來准備制成表格比較起來比較方便,但是發現不能制作表格)
  1. ios5 
    這里寫圖片描述 
    上:82px;下:84px;
  2. ios6 
    這里寫圖片描述 
    上:82px;下:84px;
  3. ios6 plus 
    這里寫圖片描述
    上:124px;下:126px;
  4. mi4w 
    這里寫圖片描述
    上:118px;下:130px;
  5. vivo 
    這里寫圖片描述 
    上:58px;下:64px;

經過實際操作發現,iOS系統上上下相差兩個像素(也有可能是我測距離的誤差) 
但是Android上相差比較大,而且不同的機型相差數目不一樣

產生原因

問了下技術大神,說是line-height對一部分Android手機不起作用,有自己默認的行高,默認行高為22px(這點我沒有試驗,不知道是否准確)

解決方法

line-height:normal; 
padding:10px 0;
 
目前只發現這個方法,沒有發現其他的方法,有新的方法將更新,歡迎大家指正。

 

或者:

關於line-height大家應該非常熟悉了吧,就是用來做垂直居中的,屢試不爽,基本上沒有什么問題,但是最近一個項目,測試提了一個bug,看圖吧。

\

從別處竊的圖,這個問題只有安卓上才能復現,做了demo,發現應該是font-size的問題,你們可以自己試試,font-size為13px或者奇數時,line-height會有一定的偏差,在safari上沒有問題,至於原因,現在還沒找到,等找到了再來補充吧。

解決辦法

雖然原因沒有找到,但是可以大致猜出是安卓上奇數字號導致line-height均分上下邊距的時候出現了偏差,那么,我們就可以通過這方面入手。

既然line-height均分不了,那就拋棄line-height吧,看代碼

element{
 
  font-size: 13px;
 
  line-height:0;
 
  padding: 15px 0;//相當於line-height 30px
 
}

 

很簡單吧,將line-height設為0,用padding來進行填充,完美實現,自測沒什么問題,如果造成其他問題,歡迎留言指出

 

<meta name="wap-font-scale" content="no">

 


免責聲明!

本站轉載的文章為個人學習借鑒使用,本站對版權不負任何法律責任。如果侵犯了您的隱私權益,請聯系本站郵箱yoyou2525@163.com刪除。



 
粵ICP備18138465號   © 2018-2025 CODEPRJ.COM