以前常常聽到移動端這個詞,但本身並無真正的編寫過移動端代碼,今天決定仿豆瓣的移動端頁面。移動端的代碼編寫其實不復雜,值得注意的地方有:特殊的meta標籤、百分百比佈局、rem設置字體大小。css
老司機請繞行~html
1 <meta name="viewport" content="width=device-width, initial-scale=1.0, maximum-scale=1.0, user-scalable=no" />
強制讓文檔的寬度與設備的寬度保持1:1,而且文檔最大的寬度比例是1.0,且不容許用戶點擊屏幕放大瀏覽;css3
name 屬性的 viewport 值(移動屏幕的縮放)web
width ---------------------– // viewport 的寬度 (範圍從 200 到 10,000,默認爲 980 像素)
height --------------------– // viewport 的高度 (範圍從 223 到 10,000 )
initial-scale --------------– // 初始的縮放比例 (範圍從 > 0 到 10)
minimum-scale ---------– // 容許用戶縮放到的最小比例
maximum-scale --------– // 容許用戶縮放到的最大比例
user-scalable -----------– // 用戶是否能夠手動縮放 (no,yes)chrome
1 body { 2 min-width: 320px; 3 }
有些安卓系統自帶的瀏覽器並不支持這一條規則,可以對頁面進行放大,一旦放大響應的 box 也隨之放大,致使頁面出現錯亂問題,解決方法:定義頁面的最小寬度; 瀏覽器
1 <meta name="format-detection" content="telephone=no" />
使設備瀏覽網頁時對數字不啓用電話功能(不一樣設備解釋不一樣,iTouch 點擊數字爲存入聯繫人,iPhone 爲撥打電話),忽略將頁面中的數字識別爲電話號碼。工具
1 element{ 2 width: 100%; 3 padding-left: 10px; 4 box-sizing:border-box; 5 -webkit-box-sizing:border-box; 6 border: 1px solid blue; 7 }
經常使用em對照表以下:佈局
有一種簡單的方式,在根節點<html>上重定義基準字號 html {font-size:62.5%} ,此時頁面基準字號就是 16px * 62.5% = 10px , 那麼此時 1em = 10px,那麼此時14px = 1.4em,15px=1.5em這樣就簡單多了。字體
1 html { font-size: 100%; } 2 .box-0 { 3 height: 1em; /* 此時height等於16px */ 4 } 5 .box-1 { 6 font-size: 0.625em; /* 此時基準字號以變動爲16*0.625=10px */
7 height: 1em; /* 此時實際height等於10px */
8 }
在整個頁面內1em並非一個固定不變的值,1em不停的變換。有了rem就好解決了。spa
rem:rem只相對跟節點<html>計算,只有把根節點設定好參考值,那麼全篇的1rem都相等,計算方式同em,默認1rem=16px; 同理你能夠設定html { font-size:62.5% } 那麼1rem就等於10px,以此類推。
聲明一下:rem是css3屬性,沒錯!這就是說屌絲ie678不支持rem屬性,只有chrome、firefox等高富帥支持!那麼咱們就在ie678中用px作兼容處理,例如:
1 .box { 2 font-size: 14px; /* 用來兼容ie678 */ 3 font-size: 0.875em; 4 }
寫的很差的地方歡迎指正,謝謝啦!