開發者可以通過設計稿基準寬度計算頁面元素 rpx 值,設計稿 1px 與框架樣式 1rpx 轉換公式如下:
設計稿 1px / 設計稿基準寬度 = 框架樣式 1rpx / 750rpx
750 * 元素在設計稿中的寬度 / 設計稿基準寬度
tips
rpx不支援動態橫豎屏切換計算,使用rpx建議鎖定螢幕方向
設計師可以用 iphone6 作為視覺稿的標準。
為支援跨平台,框架建議使用flex布局,關於flex布局可以參考外部文件
a complete guide to flexbox(
阮一峰的flex教程
1.1em的理解
1em並不是固定等於多少畫素的,而是根據元素的字型大小而定,如果是等寬字型(即每個字元的寬度都是一樣的),1em就是1個字元的寬度,如果是比例字型(通常只有英文本型才有)則1em等於英文大寫字母「m」的寬度。
(1)設定body的font-size
很多前輩在多年的實踐中得出乙個經驗,他們建議我們在body中設定乙個正文文字所需的字型大小,或者設定為「10px」,相當於(「0.625em或62.5%」),這樣為了方便其子元素計算。這兩種都是可取的。但是我們都知道,body的預設字型是「16px」,同時我們也很清楚了,我們改變了他的預設值,要讓彈性布局不被打破,就需要重新進行計算,重新進行調整。所以完美的設定是:
body
1
可是在那個沒人愛的ie底下,「em」會有乙個問題存在。調整字型大小的時候,同樣會打破我們的彈性布局,不過還好,有乙個方法可以解決:
html
需要轉換的畫素值 ÷ 父元素的font-size = em值
(2)元素自身要是設定了字型大小
元素自身要是設定了字型大小後,其計算公式就不在是前面所說的,我們需要做一下修改:
1、字型計算公式依舊
1 ÷ 父元素的font-size × 需要轉換的畫素值 = em值
2、其它屬性的計算公式需要換成
1 ÷ 元素的font-size × 需要轉換的畫素值 = em值
(3)總結
1.瀏覽器的預設字型大小是16px
2、如果元素自身沒有設定字型大小,那麼元素自身上的所有屬性值如「boder、width、height、padding、margin、line-height」等值,我們都可以按下面的公式來計算
1 ÷ 父元素的font-size × 需要轉換的畫素值 = em值
3、這一種千萬要慢慢理解,不然很容易與第二點混了。如果元素設定了字型大小,那麼字型大小的轉換依舊按第二條公式計算,也就是下面的:
1 ÷ 父元素的font-size × 需要轉換的畫素值 = em值
那麼元素設定了字型大小,此元素的其他屬性,如「border、width、height、padding、margin、line-height」計算就需要按照下面的公式來計算:
1 ÷ 元素自身的font-size × 需要轉換的畫素值 = em值
相容性:
目前,ie9+,firefox、chrome、safari、opera 的主流版本都支援了rem。
就算對不支援的瀏覽器,應對方法也很簡單,就是多寫乙個絕對單位的宣告。這些瀏覽器會忽略用rem設定的字型大小。
使用%單位方便使用
css中的body中先全域性宣告font-size=62.5%,這裡的%的演算法和rem一樣。
因為100%=16px,1px=6.25%,所以10px=62.5%,
這是的1rem=10px,所以12px=1.2rem。px與rem的轉換通過10就可以得來,很方便了吧!
使用方法
注意,rem是只相對於根元素htm的font-size,即只需要設定根元素的font-size,其它元素使用rem單位設定成相應的百分比即可;
css中的flex布局
flex布局為 彈性盒布局 用彈性布局的方式有極大的靈活性,任何元素都可以使用flex布局,不管是行內元素或者是快級元素任何乙個容器都可以作為flex布局。box1 主軸的方向 即子元素的排序方向。橫向 反向橫向 豎向 反向豎向。flex direction row row reverse colu...
css布局之flex布局
網頁布局 layout 是css的乙個重點應用。布局的傳統解決方案,基於盒狀模型,依賴 display屬性 position屬性 float屬性。它對於那些特殊布局非常不方便,比如,垂直居中就不容易實現。2009年,w3c提出了一種新的方案 flex布局,可以簡便 完整 響應式地實現各種頁面布局。目...
CSS中的flex(彈性布局)
父標籤 display flex flex direction row row reverse 橫向 起點方向 rolumn rolumn reverse 縱向 flex wrap nowrap wrap wrap reverse 換 況 flex flow direction 與 wrap 結合 ...