溫馨提示×

您好,登錄后才能下訂單哦!

密碼登錄×
登錄注冊(cè)×
其他方式登錄
點(diǎn)擊 登錄注冊(cè) 即表示同意《億速云用戶服務(wù)條款》

移動(dòng)端android上line-height不居中的問(wèn)題的解決

發(fā)布時(shí)間:2020-10-10 13:19:02 來(lái)源:腳本之家 閱讀:244 作者:玉帛逸 欄目:移動(dòng)開(kāi)發(fā)

現(xiàn)在越來(lái)越多的移動(dòng)界面使用rem適配,遇到的坑也不盡其數(shù),今天就移動(dòng)端android上line-height不居中的問(wèn)題提出自己的解決辦法。

據(jù)分析得知原因:

1.字體大小不要使用奇數(shù)字號(hào),帶小數(shù)點(diǎn)的更不要提了。也就是說(shuō)被2整除的整數(shù)且不可小于12px。
2.使用rem的單位時(shí)造成(根元素如果動(dòng)態(tài)改變時(shí),根元素字體可能不是整數(shù))。

那么,怎么解決了?

網(wǎng)上有好幾種,如

1.把字號(hào)內(nèi)外邊距等設(shè)置為需求大小的2倍,使用transform進(jìn)行縮放。只能針對(duì) 單個(gè)或者是一排的布局進(jìn)行縮放,如果是父級(jí)自適應(yīng)高度且可展示多行的,使用transform是有問(wèn)題的。因?yàn)閠ransform縮放是不影響頁(yè)面布局的。
2.把字號(hào)內(nèi)外邊距等設(shè)置為需求大小的2倍,使用zoom進(jìn)行縮放,可以完美解決。
3.把line-height設(shè)置為0,使用padding值把元素?fù)伍_(kāi),說(shuō)是可以完美解決(經(jīng)過(guò)測(cè)試,沒(méi)有用的?。?。

下面我列出自己的解決辦法:

使用

display: table-cell;
text-align: center;
vertical-align: middle;

這種自適應(yīng)垂直布局,不懂得自行百度,當(dāng)然,這種布局和浮動(dòng)一起使用會(huì)失效,怎么解決這個(gè)問(wèn)題,我常用的就是在外面包一個(gè)標(biāo)簽,把浮動(dòng)屬性放在此元素上,簡(jiǎn)單的代碼如下:

<!DOCTYPE html>
<html>
 <head>
  <meta charset="utf-8" />
  <meta name="viewport" content="width=device-width, initial-scale=1.0, minimum-scale=1.0, maximum-scale=1.0, user-scalable=no">
  <meta content="yes" name="apple-mobile-web-app-capable">
  <meta content="black" name="apple-mobile-web-app-status-bar-style">
  <meta content="telephone=no" name="format-detection">
  <meta http-equiv="Expires" content="-1">
  <meta http-equiv="Cache-Control" content="no-cache">
  <meta http-equiv="Pragma" content="no-cache">
  <meta name="wap-font-scale" content="no">
  <meta http-equiv="X-UA-Compatible" content="IE=edge">
  <meta name="renderer" content="webkit|ie-comp|ie-stand">
  <meta name="keywords" content="">
  <meta name="description" content="">
  <!--此處為簡(jiǎn)單的適配,不影響-->
  <script type="text/javascript" charset="utf-8">
   ! function() {
    setRem();
    window.addEventListener('orientation' in window ? "deviceorientation" : "resize", setRem);
    function setRem() {
     var html = document.documentElement;
     var width = html.clientWidth;
     html.style.fontSize = width / 16 + 'px'
    }
   }();
  </script>
  <title>解決line-height問(wèn)題</title>
  <style type="text/css">
   .bindBtn {
    display: table-cell;
    text-align: center;
    vertical-align: middle;
    width: 3rem;
    height: 1.5rem;
    font-size: .75rem;
    text-align: center;
    color: #fff;
    border-radius: 0.75rem;
    background-color: #f44975;
    text-decoration: none;
   }   
   .buyBtn {
    display: table-cell;
    text-align: center;
    vertical-align: middle;
    width: 3rem;
    height: 1.5rem;
    border-radius: 0.75rem;
    font-size: 0.6rem;
    color: #fff;
    background: #666;
   }  
   .float_left {
    float: left;
   }
  </style>
 </head>
 <body>
  <a class="bindBtn" href="javascript:;" rel="external nofollow" rel="external nofollow" >已邀請(qǐng)</a>
  <!--浮動(dòng)的情況 -->
  <a class="float_left"  href="javascript:;" rel="external nofollow" rel="external nofollow" >
   <span class="buyBtn">購(gòu)買</span>
  </a>
 </body>
</html>

在安卓機(jī)上效果如下:這里寫圖片描述

移動(dòng)端android上line-height不居中的問(wèn)題的解決

以上就是本文的全部?jī)?nèi)容,希望對(duì)大家的學(xué)習(xí)有所幫助,也希望大家多多支持億速云。

向AI問(wèn)一下細(xì)節(jié)

免責(zé)聲明:本站發(fā)布的內(nèi)容(圖片、視頻和文字)以原創(chuàng)、轉(zhuǎn)載和分享為主,文章觀點(diǎn)不代表本網(wǎng)站立場(chǎng),如果涉及侵權(quán)請(qǐng)聯(lián)系站長(zhǎng)郵箱:is@yisu.com進(jìn)行舉報(bào),并提供相關(guān)證據(jù),一經(jīng)查實(shí),將立刻刪除涉嫌侵權(quán)內(nèi)容。

AI