<meta name="viewport" content="name=value,name=value"> // 指令 每對鍵值對都是一個指令,(ppk 大神的叫法)如下總計共有6對: width 設置layout viewport的寬度(css px) initial-scale 設置頁面的初始縮放比例同時能夠設置layout viewport的寬度 minimum-scale 設置最小縮放比例(指用戶可以縮小到多小) maximum-scale 設置最大縮放比例(指用戶可以放大到多大) height 設置layout viewport的高度,但暫時不怎麼被支持 user-scalable 設置是否容許用戶放大縮小。
當咱們的網頁不使用viewport的時候網頁在移動端顯示的時候基本上看不清楚字體,爲何呢?由於咱們將960px(當咱們不作設置的時候viewport會自動的把咱們的html給規定成980px)的內容壓縮到320dpx(非css單位,在移動端中1px帶至一個最小顯示單位,一屏就是320px)。css
經過上述的例子咱們知道基本上 viewport 的默認寬度是980px,且瀏覽器會將者 viewport 大小的 html 文檔塞進有限的設備寬度內(瀏覽器會動態計算文檔的佈局及內容),因此咱們看到的東西都很小。
那麼咱們想要清除的看清文檔內的內容怎麼辦 ,沒錯,縮小 viewport 的大小,什麼原理?
當咱們縮小 viewport 的寬度的時候文檔的寬度也對應的被縮小,即同樣的設備寬度,我顯示的東西少了(這時候瀏覽器從新計算文檔佈局及內容)能夠看到的結果是字體被放大了,內容都被放大了!html
[x] initial-scale
在移動設備上,用戶有時會縮放,當頁面縮放時,viweport的像素尺寸也會響應的改變,單css尺寸不會變。前端
好比,在一個400px寬的Viewport中有一個元素,設定width: 100px;,這時該元素就橫跨了1/4的屏幕。若是用戶把頁面放大到兩倍大小,這時Viewport寬度變成了200px,但元素仍然寬100個CSS像素。這時這個元素就佔了半個屏幕了。android
頁面的滾動位置分爲兩種,一種是滾動body,另外一種固定body的高度爲100%,在main中滾動。ios
在移動端開發中,在有input元素的標籤頁中使用fixed定位時會出現一些問題。 在ios上,當點擊input標籤獲取焦點喚起軟鍵盤的時候fixed定位會暫時失效,或者理解爲變爲了absolute定位,在含有滾動的頁面會和其餘結點一塊兒滾動。因此在含有input元素的頁面中使用absolute更好。css3
在開發中咱們常常要對錶單元素進行輸入限制,好比特殊的字符(也有xss的防範功能),咱們會監聽input事件。可是,在ios中input事件會截斷非直接輸入,好比:輸入[焦貴彬]中間過程當中會輸入拼音,每次輸入一個字母都會觸發input事件,然而在沒有點擊選定按鈕以前都會截斷,也就是會觸發不少次。這時候就須要咱們說的兩個事件。web
compositionstart 事件在用戶開始進行非直接輸入的時候觸發,而在非直接輸入結束,也即用戶點選候選詞或者點擊「選定」按鈕以後,會觸發 compositionend 事件。chrome
css3動畫會新建一個圖層,另外部分css3動畫會調用GPU,獲得性能上的提高.瀏覽器
上面有提到須要注意一些地方,就是他會將後面的一些不須要新建圖層的元素新建圖層,使性能不只沒有提高反而出現了一些隱患!css3動畫
在chrome 中選擇open drawer(版本不一樣會不同,有些版本下直接在控制檯的設置中 more tools --> rednering)選擇rendering,而後選擇打開layer boerders ,如今在咱們的瀏覽器上就能夠看到一些黃色的框框,這個就是咱們所謂的複合層,表示被放到了一個新的圖層中渲染。
注意觸發新建圖層的最後一條,它的意思是若是有一個元素,它的兄弟元素複合層中渲染,而這個兄弟元素的z-index較小,那麼這個元素(不論是否應用了硬件式加速)也會被放到複合層中,那麼瀏覽器頗有可能給複合層以後的全部相對或絕對定位的元素都建立一個複合層來渲染,因而就有了這樣的情形-- 頁面上不少元素都啓用了GPU加速,反而致使了頁面很是的卡頓
上面說了一些須要注意的地方,可是整體來講咱們仍是會採用一些css3的動畫去調用GPU,好比translate-Z:0;但是此時咱們並非要旋轉,這是一種欺騙瀏覽器的行爲。此時咱們能夠關注一下will-change
```
/* 關鍵字值 /
will-change: auto;
will-change: scroll-position; // 告知瀏覽器會有滾動
will-change: contents; // 告知瀏覽器內容或動畫變化了
will-change: transform; /
will-change: opacity; /
will-change: left, top; / 兩個
/* 全局值 */
will-change: inherit;
will-change: initial;
will-change: unset;
```
若是使用的是rem的單位(至關於根元素的字體大小來縮放)由於這樣有兩個明顯的缺點 1.適配屏幕的尺寸不是連續的 2. 在本身的css文件中添加打斷的這樣查詢代碼。增長了css文件的體積。