媒體查詢爲不一樣設備之間作樣式的適配提供了很好的解決方式,也可以提供一些識別不一樣設備的方式。css
媒體查詢能夠有如下三種使用方式:html
一、 <link rel="stylesheet" type="text/css" media="screen" href="sans-serif.css"> 二、 @import url(example.css) screen and (color); 三、 @media screen { * { font-family: sans-serif } }
width: (max-width、min-width)
適用於視覺和觸覺媒體類型,不能指定負值
如下媒體查詢例子表示該樣式表適用於視口(文件渲染的部分屏幕/紙張)寬度在400至700像素之間的設備:web
@media screen and (min-width: 400px) and (max-width: 700px) { ... }
height: (max-height、min-height)
適用於視覺和觸覺媒體類型,不能指定負值
用法與width
特性一致。瀏覽器
也許你會看到device-width
和device-height
這樣的媒體特性被使用,這二者更多的是表示設備的物理的寬高,標準文檔中指出,建議使用width
或者height
去作媒體沒查詢,實現更好的效果。安全
orientation (portrait(縱向)、landscape(橫向))
適用於位圖媒體類型,表示設備的橫屏、豎屏若height
媒體特性的值大於width
媒體特性的值,則orientation
媒體特性爲portrait
,不然orientation
爲landscape
。iphone
<!-- 豎屏設備 --> @media all and (orientation:portrait) { ... } <!-- 橫屏設備 --> @media all and (orientation:landscape) { ... }
aspect-ratio
設備寬高比,定義爲width
與height
的比例。<!-- 表示16/9設備屏幕 --> @media screen and (aspect-ratio: 16/9) { ... }
很是強大的功能,能夠間接判斷是不是觸摸設備。
好比any-hover
判斷設備是否支持鼠標通過行爲。學習
any-hover
none
: 沒有什麼輸入裝置能夠實現hover懸停,即沒有鼠標輸入設備優化
hover
: 一個或多個輸入裝置能夠觸發元素的hover懸停交互,即支持鼠標設備url
適用場景:在移動端和PC端通用一個按鈕,須要給按鈕懸停效果,這是PC的hover就不適合移動端了,就能夠藉助any-hover
來爲移動端作單獨的效果優化體驗。code
button { background-color: #fff; } button:active { background-color: #f0f0f0; } /* 兼容PC端: */ @media (any-hover: hover) { button:hover { background-color: #f5f5f5; } }
any-pointer
none
: 沒有可點擊的設備
coarse
: 至少一個設備的點擊,可是點擊不許確,例如手機移動端。
fine
: 精準點擊,常指帶鼠標的PC瀏覽器。
當咱們知道一個設備點擊是否精確仍是不精確以後,咱們就能進行相應的體驗升級和改進。比方說一個單選框或者複選框,在PC端鼠標點擊仍是很好操做的,可是在移動端,就須要作優化處理,針對移動端,讓複選區域、點擊區域變大,從而達到優化用戶體驗的效果。
二者在瀏覽器兼容性
目前來講,除了IE瀏覽器不兼容,二者在其餘瀏覽器上都可以使用。
媒體查詢的功能遠遠不止這些,最經典的場景就是對於特殊設備的兼容:iphoneX的安全區域適配。媒體查詢在web上爲提高用戶體驗、交互體驗舉足輕重,只有充分學習它,不斷探索與嘗試,才能更完美地適配。
https://www.w3.org/TR/2020/WD...
https://www.w3.org/TR/2020/CR...