成人国产在线小视频_日韩寡妇人妻调教在线播放_色成人www永久在线观看_2018国产精品久久_亚洲欧美高清在线30p_亚洲少妇综合一区_黄色在线播放国产_亚洲另类技巧小说校园_国产主播xx日韩_a级毛片在线免费

資訊專欄INFORMATION COLUMN

網(wǎng)頁單位和rem使用小結(jié)

王巖威 / 1711人閱讀

摘要:像素像素是一個相對單位。相對不同屏幕,其實際像素大小不同。解決方案直接使用實現(xiàn)的終端適配有興趣的小伙伴可以看下的解決方案使用實現(xiàn)手淘頁面的終端適配地址移動端適配單位的坑你知道多少關(guān)于移動端布局的一些總結(jié)

網(wǎng)頁尺寸單位

百分比(%

英寸(in

厘米(cm

毫米(mm

磅數(shù)(pt

12 點活字(pc

字母高度一半(ex

父級字體(em

像素(px

根元素字體(rem

相對于視窗的寬度(vw

相對于視窗的高度(vh

相對于視口的寬度或高度中較大的那個(vmax

相對于視口的寬度或高度中較小的那個(vmin

使用前可以在 http://caniuse.com/ 查看各個單位的瀏覽器兼容性
設(shè)備像素

ppi(pixels per inch)設(shè)備像素表示每英寸所擁有的像素(pixel)數(shù)目,數(shù)值越高,代表屏幕能以更高的密度顯示圖像。

計算公式:ppi=像素數(shù)量/物理尺寸(英寸數(shù))

設(shè)備獨立像素

dips(device-independent pixels)設(shè)備獨立像素。

我們希望不同屏幕顯示圖片的大小要一致,我們要計算圖片縮放比例。

 計算公式:圖片邏輯像素大小px1 / 圖片縮放后實際像素大小px2 = 設(shè)備像素dp / 設(shè)備獨立像素dips
 px2 = px1 * (dp / dips)
 px2 = px1 * dpr
設(shè)備像素比

dpr(devicePixelRatio)是設(shè)備像素dp和設(shè)備獨立像素dips的比例。
dpr = dp / dips

css像素

css像素是一個相對單位。相對不同屏幕,其實際像素大小不同。
我們定義時,是定義其邏輯像素。即該圖要用多少個像素來顯示。

rem rem是什么?

rem (root element),這個是一個相對的單位。
em的差別在于rem相對的是根節(jié)點htmlfont-size,em相對的是父元素font-size

如何優(yōu)雅地使用rem

動態(tài)修改htmlfont-size,那么使用rem的元素的對應(yīng)單位實際像素也會相應(yīng)的改變,所以我們只要寫一份css就可以適配所有手機的屏幕了。雖然rem在某些瀏覽器下面不夠精準,但那也只是少數(shù),如果需要非常精準的適配,那么可以使用js來計算htmlfont-size。

現(xiàn)在設(shè)計師給的移動端視覺稿,一般都是按照750px來設(shè)計的。當我們拿到視覺稿時,首先把視覺稿的寬度轉(zhuǎn)換為rem,我們并不需要考慮設(shè)備的分辨率,只需要按照

計算公式:視覺稿寬度 = font-size * rem

這個公式來計算就好了。視覺稿的寬度是我們以750px為例,font-sizerem 是兩個變量,我們只需要它們的乘積等于750即可。我們采用 定一變一的方式,假定rem=7.5,那么初始值font-size就必須等于 100px,我們就可以根據(jù)需要適配的屏幕寬度來等比例調(diào)整font-size。那么如果我們750px的視覺稿需要顯示成640px呢,我們只需要把font-size對應(yīng)的縮小就可以了。其他的各種的屏幕,只需要等比例縮放就好了。

js+sass計算方案

JS動態(tài)設(shè)置font-size(簡單demo,如有需要最好加上DomContentLoadedorientationchange的監(jiān)聽):

fnResize();
window.addEventListener("resize", function() {
    fnResize()
}, false);
function fnResize(){
    var docWidth = document.documentElement.clientWidth,
            body = document.getElementsByTagName("html")[0];
    body.style.fontSize = docWidth / 32 + "px";
}

sass:

@function rem($px){
    @return $px*(1/20)*1rem;
}

.ty_con{
    minwidth: rem(300); /* 15rem */
}
rem問題及解決方案

問題:

部分安卓機rem計算出來的font-size總是要比預(yù)期要大一些或者小一些:華為,魅族......(小數(shù)保留問題)這樣會導致最后的計算是不準確的。

解決方案1:

css的使用上寬度布局盡量使用百分比,flexbox-sizing來做,減少寬度計算誤差產(chǎn)生的問題。

icon雪碧圖的圖標之間留白,在寫寬度的時候多寫幾像素使圖標居中。

解決方案2:

在每次計算完頁面的fontSize后,對某個實際元素的大小進行判斷,如果對比原來的比例有0.2以上的出入,那就用這個比例去重新設(shè)置頁面的fontSize。如果是正常情況,就不會執(zhí)行頁面fontSize重新這一步。至此,問題也算是解決了。

解決方案3:

直接使用Flexible實現(xiàn)H5的終端適配

有興趣的小伙伴可以看下Flexible的解決方案:

使用Flexible實現(xiàn)手淘H5頁面的終端適配:http://www.w3cplus.com/mobile...
github地址:https://github.com/amfe/lib-f...
移動端Web適配單位rem的坑你知道多少 :http://www.jianshu.com/p/8300...
關(guān)于移動端 rem 布局的一些總結(jié): https://segmentfault.com/a/11...

文章版權(quán)歸作者所有,未經(jīng)允許請勿轉(zhuǎn)載,若此文章存在違規(guī)行為,您可以聯(lián)系管理員刪除。

轉(zhuǎn)載請注明本文地址:http://systransis.cn/yun/113321.html

相關(guān)文章

  • 移動端網(wǎng)頁布局適配rem方案小結(jié)

    摘要:當明確規(guī)定根元素的時,單位以該屬性的初始值作參照。適配具體實現(xiàn)方案設(shè)計稿尺寸寬度為,如果設(shè)計稿是,下邊會自動計算的值比如,具體的尺寸不用調(diào)整例如,不用調(diào)整,這是一個比例大小,對應(yīng)的元素大小值會根據(jù)新的比如等于改變,從而按照比例適配。 前言 根據(jù) W3C 規(guī)范中對 1rem 的定義: 1rem 與等于根元素 font-size 的計算值。當明確規(guī)定根元素的 font-size 時,rem...

    2shou 評論0 收藏0
  • 移動端網(wǎng)頁布局適配rem方案小結(jié)

    摘要:當明確規(guī)定根元素的時,單位以該屬性的初始值作參照。適配具體實現(xiàn)方案設(shè)計稿尺寸寬度為,如果設(shè)計稿是,下邊會自動計算的值比如,具體的尺寸不用調(diào)整例如,不用調(diào)整,這是一個比例大小,對應(yīng)的元素大小值會根據(jù)新的比如等于改變,從而按照比例適配。 前言 根據(jù) W3C 規(guī)范中對 1rem 的定義: 1rem 與等于根元素 font-size 的計算值。當明確規(guī)定根元素的 font-size 時,rem...

    Nino 評論0 收藏0
  • 一次搞懂CSS字體單位:px、em、rem%

    摘要:網(wǎng)頁單位絕對單位,代表屏幕中每個點。相對單位,每個元素透過倍數(shù)乘以根元素的值。和就是固定百分比為單位,為父層的,為父層的。 對于繪圖和印刷而言,單位相當重要,然而在網(wǎng)頁排版里,單位也是同樣具有重要性,在CSS3普及以來,更支持了一些方便好用的單位(px、em、rem…等),這篇文章將整理這些常用的CSS單位,也幫助自己未來在使用上能更加得心應(yīng)手。 網(wǎng)頁和印刷的單位若要把單位做區(qū)隔,最簡...

    forsigner 評論0 收藏0
  • CSS 小結(jié)筆記之em

    摘要:很多人會疑惑為什么有了之后還要使用,而且使用起來相對于來講比較麻煩。如下圖接下來,按住鍵并連續(xù)按減號鍵,對頁面不斷進行縮小。造成這種現(xiàn)象的主要原因是是相對大小,使用時對頁面進放大或縮小不會造成太大的影響。1、為什么使用em em也是css中的一種單位,和px類似。很多人會疑惑為什么有了px之后還要使用em,而且em使用起來相對于px來講比較麻煩。 em主要是應(yīng)用于彈性布局,下面給出一個小栗子...

    番茄西紅柿 評論0 收藏0

發(fā)表評論

0條評論

最新活動
閱讀需要支付1元查看
<