相關動態REM的文章
移動端高清、多屏適配方案
使用Flexible實現手淘H5頁面的終端適配
viewport
<meta name="viewport" content="width=device-width, user-scalable=no, initial-scale=1.0, maximum-scale=1.0, minimum-scale=1.0">
viewport的meta標簽常用于移動端,那么content中的每個屬性都表示什么呢
先看mdn中的解釋:
可以了解到,content中的屬性用來定義layout viewport的size和scale level
接下來看每個屬性的意義:
width=device-width
表示viewport的寬度為設備寬度,注意,如果meta中只有指定這個屬性,那么其他屬性就會被瀏覽器推測出來
例如:
現在使用<meta name=viewport content="width=320">
,在iphone4上,由于iphone4的device-width
設備寬度是320px,所以initial-scale
就是為1,如果在iphone6上,iphone6的device-width
是375px,那么initial-scale
就是375/320initial-scale=1
表示scale ratio為1,例如,設備的device-width
為375px,那么viewport就是375,如果只設置initial-scale
,其實就表示width=device-width
,注意: 如果initial-scale
和width
同時設置,會取計算后大的那一個
例如:
使用<meta name=viewport content="width=375, initial-scale=1">
,在iphone6中,viewport的width就是375,如果在iphone6p,就是414,因為initial-scale=1
,iphone6p的device-width
是414,所以最后取大的一個就是414,如果在iphone5中,就是375,因為iphone5的device-width
是320,所以initial-scale=1
計算出來就是320,但是width是375,所以取375miximum-scale
、minimum-scale
因為scale是可以被瀏覽器根據推測出來的,所以這兩個屬性可以起到限制作用,默認最小值是0.25,最大值是5user-scalable=no
不讓用戶手動縮放,因為已經適配好了
參考
Configuring the Viewport - Safari Web Content Guide,這段是瀏覽器推測的行為,How Safari Infers the Width, Height, and Initial Scale
Using the viewport meta tag to control layout on mobile browsers
移動前端開發之viewport的深入理解