- CSS 教程
- CSS - 首頁
- CSS - 路線圖
- CSS - 簡介
- CSS - 語法
- CSS - 選擇器
- CSS - 包含
- CSS - 測量單位
- CSS - 顏色
- CSS - 背景
- CSS - 字型
- CSS - 文字
- CSS - 圖片
- CSS - 連結
- CSS - 表格
- CSS - 邊框
- CSS - 塊級邊框
- CSS - 行內邊框
- CSS - 外邊距
- CSS - 列表
- CSS - 內邊距
- CSS - 游標
- CSS - 輪廓
- CSS - 尺寸
- CSS - 捲軸
- CSS - 行內塊
- CSS - 下拉選單
- CSS - 可見性
- CSS - 溢位
- CSS - Clearfix
- CSS - 浮動
- CSS - 箭頭
- CSS - 調整大小
- CSS - 引號
- CSS - 順序
- CSS - 位置
- CSS - 連字元
- CSS - 懸停
- CSS - 顯示
- CSS - 聚焦
- CSS - 縮放
- CSS - 轉換
- CSS - 高度
- CSS - 連字元字元
- CSS - 寬度
- CSS - 不透明度
- CSS - Z-Index
- CSS - 底部
- CSS - 導航欄
- CSS - 疊加層
- CSS - 表單
- CSS - 對齊
- CSS - 圖示
- CSS - 圖片庫
- CSS - 註釋
- CSS - 載入器
- CSS - 屬性選擇器
- CSS - 組合器
- CSS - 根元素
- CSS - 盒模型
- CSS - 計數器
- CSS - 剪裁
- CSS - 書寫模式
- CSS - Unicode-bidi
- CSS - min-content
- CSS - 全部
- CSS - 內嵌
- CSS - 隔離
- CSS - 溢位滾動
- CSS - Justify Items
- CSS - Justify Self
- CSS - Tab Size
- CSS - 指標事件
- CSS - Place Content
- CSS - Place Items
- CSS - Place Self
- CSS - 最大塊級尺寸
- CSS - 最小塊級尺寸
- CSS - 混合模式
- CSS - 最大內聯尺寸
- CSS - 最小內聯尺寸
- CSS - 偏移
- CSS - 強調色
- CSS - 使用者選擇
- CSS 高階
- CSS - 網格
- CSS - 網格佈局
- CSS - Flexbox
- CSS - 可見性
- CSS - 定位
- CSS - 層
- CSS - 偽類
- CSS - 偽元素
- CSS - @規則
- CSS - 文字效果
- CSS - 分頁媒體
- CSS - 列印
- CSS - 佈局
- CSS - 驗證
- CSS - 圖片精靈
- CSS - !important
- CSS - 資料型別
- CSS3 教程
- CSS3 - 教程
- CSS - 圓角
- CSS - 邊框圖片
- CSS - 多重背景
- CSS - 顏色
- CSS - 漸變
- CSS - 盒陰影
- CSS - 盒裝飾中斷
- CSS - 游標顏色
- CSS - 文字陰影
- CSS - 文字
- CSS - 二維轉換
- CSS - 三維轉換
- CSS - 過渡
- CSS - 動畫
- CSS - 多列
- CSS - 盒尺寸
- CSS - 工具提示
- CSS - 按鈕
- CSS - 分頁
- CSS - 變數
- CSS - 媒體查詢
- CSS - 函式
- CSS - 數學函式
- CSS - 遮罩
- CSS - 形狀
- CSS - 樣式圖片
- CSS - 特效性
- CSS - 自定義屬性
- CSS 響應式
- CSS RWD - 簡介
- CSS RWD - 視口
- CSS RWD - 網格檢視
- CSS RWD - 媒體查詢
- CSS RWD - 圖片
- CSS RWD - 影片
- CSS RWD - 框架
- CSS 工具
- CSS - PX 到 EM 轉換器
- CSS - 顏色選擇器和動畫
- CSS 資源
- CSS - 有用資源
- CSS - 討論
CSS - 媒體查詢
CSS中的媒體查詢用於根據螢幕尺寸、解析度和其他使用者裝置特性應用不同的CSS樣式。媒體查詢使用@media規則,在滿足特定條件時包含額外的CSS屬性塊。媒體查詢也可用於單獨設定頁面的可列印版本樣式。
語法
@media not|only mediatype and (media feature) and (media feature) {
CSS-Code;
}
這裡,media-type可以是screen、print、speech等,而media-feature可以是寬度、高度、縱橫比、方向等特性。
你可能已經注意到,同一個網站在移動裝置和桌面裝置上的顯示效果不同。這種螢幕相關的樣式是使用CSS媒體查詢實現的。在本教程中,我們將學習媒體查詢及其相關的屬性。
目錄
媒體型別
媒體型別用於CSS媒體查詢,根據裝置應用不同的樣式。最常見的媒體型別是all、print和screen。如果未指定媒體型別,則匹配所有裝置。
- all: 預設值。此值適用於所有媒體型別。
- print: 此值僅在列印文件時有效。
- screen: 此值僅對螢幕有效,例如計算機、平板電腦和智慧手機。
JavaScript提供了一個名為CSSMediaRule的CSS物件模型介面,可用於訪問使用@media CSS @規則建立的規則。
CSS媒體型別Print
有時為使用者生成的列印版本不需要螢幕中顯示的所有樣式。列印版本通常以灰度樣式或簡單的淺色生成。建議這種設計,因為深色背景會消耗印表機更多的墨水。
示例
以下示例演示了使用媒體型別為print的CSS媒體查詢。
<!DOCTYPE html>
<html>
<head>
<style>
body{
background-color: black;
color: white;
padding: 10px;
}
@media print {
body {
background-color: white;
color: black;
padding: 10px;
}
}
button {
background-color: aqua;
padding: 5px;
}
</style>
</head>
<body>
<h3> Tutorialspoint </h3>
<p>CSS Media Type - Print</p>
<p>
Background is white for printable version of this page.
Check out...
</p>
<button onclick="printPage()">Print Page</button>
<script>
function printPage() {
window.print();
}
</script>
</body>
</html>
CSS媒體型別All
這用於指定在所有螢幕尺寸、可列印版本和其他版本中使用的通用樣式。
示例
以下示例演示了使用媒體型別為all的CSS媒體查詢。
<!DOCTYPE html>
<html>
<head>
<style>
@media all {
body{
background-color: black;
color: white;
padding: 10px;
}
}
</style>
</head>
<body>
<h3>Tutorialspoint </h3>
<p> CSS Media Type - All </p>
<p>
In printable version or any screen size, the
styles of this page is same.
</p>
<button onclick="printPage()">
Print Page
</button>
<script>
function printPage() {
window.print();
}
</script>
</body>
</html>
CSS媒體型別Screen
此值僅對螢幕有效,例如計算機、平板電腦和智慧手機。
示例
以下示例演示瞭如果螢幕尺寸大於500px,背景顏色將更改為粉紅色,文字顏色將更改為藍色。
<!DOCTYPE html>
<html>
<head>
<style>
.container {
display: flex;
flex-direction: row;
padding: 10px;
gap: 10px;
}
.child{
padding: 10px;
background-color: #f0f0f0;
border: 2px solid;
}
@media screen and (max-width: 500px) {
.container {
flex-direction: column;
}
}
</style>
</head>
<body>
<p>
Orientation of child elements depend on screen size,
for screen size less than 500px, children align in
two different columns.
</p>
<div class="container">
<div class="child" > HTML </div>
<div class="child"> CSS </div>
</div>
</body>
</html>
媒體查詢的寬度範圍
在媒體查詢中,也可以這樣指定螢幕寬度範圍。
@media (width > 700px) {
/* Styles for screens that are at least 700px wide */
}
示例
以下示例演示了當螢幕寬度在600px到800px之間時,背景顏色更改為黃色,文字顏色更改為紅色。
<!DOCTYPE html>
<html>
<head>
<style>
p {
color: blue;
}
@media (600px < width < 800px) {
p {
background-color: yellow;
color: red;
}
}
</style>
</head>
<body>
<h1>Tutorialspoint</h1>
<p>CSS Media Type - Screen</p>
<p>Resize the browser size to see the effect.</p>
</body>
</html>
逗號分隔的媒體型別
媒體查詢中的逗號類似於邏輯“OR”運算子。
以下宣告將應用於螢幕寬度小於500px或可列印版本。也可以使用OR運算子代替逗號。
@media (min-width: 500px), print {
/* Styles */
}
示例
以下示例演示了使用逗號分隔的媒體型別。在列印模式下以及螢幕尺寸>500px時,背景顏色會發生變化。
<!DOCTYPE html>
<html>
<head>
<style>
body {
background-color: white;
color: black;
}
@media (min-width: 500px), print {
body {
background-color: black;
color: white;
}
}
button {
background-color: violet;
padding: 5px;
}
</style>
</head>
<body>
<h1>CSS Media Type - Screen and Print</h1>
<p>
Resize the window to less than 500px to see the
background and font color changes to default.
</p>
<p>
Click on below button to see the effect when you
print the page. ( Enable background graphics options
if any at print section )
</p>
<button onclick="printPage()">Print Page</button>
<script>
function printPage() {
window.print();
}
</script>
</body>
</html>
僅使用CSS媒體型別
僅使用媒體型別僅在整個媒體查詢匹配時才應用樣式。這有助於防止舊版瀏覽器應用樣式。
示例
以下示例演示了當螢幕寬度在500px到700px之間時,背景顏色更改為粉紅色,文字顏色更改為藍色。
<!DOCTYPE html>
<html>
<head>
<style>
body {
color: red;
}
@media only screen and (min-width: 500px) and (max-width: 700px) {
body {
color: blue;
background-color: pink;
}
}
</style>
</head>
<body>
<h1>Tutorialspoint</h1>
<p>CSS Media Type - Screen</p>
<p>
Resize the browser window to see the effect.
</p>
</body>
</html>
CSS媒體查詢AND運算子
AND運算子用於組合媒體查詢中的多個條件。這兩個條件都必須為真,樣式才能應用。
示例
此示例演示了當螢幕寬度在500px到700px之間時,將新增樣式。
<!DOCTYPE html>
<!DOCTYPE html>
<html lang="en">
<head>
<style>
body {
background-color: lightgray;
color: black;
}
@media (min-width: 500px) and (max-width: 700px) {
body {
background-color: lightgreen;
color: blue;
}
}
</style>
</head>
<body>
<h1> Media Query with AND Operator</h1>
<p>
Resize the browser window between 500px and 700px
to see the effect.
</p>
</body>
</html>
媒體查詢NOT運算子
NOT運算子否定媒體查詢,僅當媒體查詢不匹配時才應用樣式。
NOT運算子在媒體查詢中最後進行評估,因此上述媒體查詢將按如下方式評估。
@media not (all and (monochrome)) {
/* … */
}
/* It's not evaluated like this:*/
@media (not all) and (monochrome) {
/* … */
}
示例
在此示例中,NOT運算子否定條件width < 700。
<!DOCTYPE html>
<!DOCTYPE html>
<html lang="en">
<head>
<style>
body {
background-color: lightgray;
color: black;
}
@media not screen and (width < 700px) {
body {
background-color: orange;
color: white;
}
}
</style>
</head>
<body>
<h1> Media Query with NOT Operator </h1>
<p>
Resize the browser window to less than 700px
to see the effect.
</p>
</body>
</html>
建立複雜的媒體查詢
可以使用and、not和only運算子組合多個條件來建立複雜的媒體查詢。還可以將多個媒體查詢組合成逗號分隔的列表。
示例
在此示例中,我們組合了多個媒體查詢,嘗試更改瀏覽器寬度以檢視多種效果。
<!DOCTYPE html>
<html>
<head>
<style>
body {
background-color: lightgray;
color: black;
}
@media only screen and (min-width: 500px) and (max-width: 700px) {
body {
background-color: pink;
color: blue;
}
}
@media not screen and (max-width: 700px) {
body {
background-color: orange;
color: white;
}
}
</style>
</head>
<body>
<h1>
Media Query with AND, NOT, and ONLY Operators
</h1>
<p>
Resize the browser window to see the effects.
</p>
</body>
</html>
CSS媒體查詢螢幕方向
我們可以為使用者裝置的特定方向(橫向或縱向)定義樣式。此預設值為縱向。
@media (orientation: portrait) {
/* Styles */
}
示例
以下示例演示了當螢幕寬度大於500px且裝置處於橫向方向時,文字顏色更改為藍色。
<!DOCTYPE html>
<html>
<head>
<style>
body {
color: red;
}
@media (min-width: 500px) and (orientation: landscape) {
body {
color: blue;
}
}
</style>
</head>
<body>
<h3>Resize the browser window to see the effect.</h3>
<p>
The text color changed to blue when the viewport width is
at least 500px and the device is in landscape orientation.
</p>
</body>
</html>
媒體查詢功能列表
CSS媒體查詢功能用於根據特定特性、輸出裝置或環境將不同的樣式應用於網頁。
以下是與媒體功能相關的CSS屬性列表。
| 媒體功能 | 描述 | 示例 |
|---|---|---|
| any-hover | 檢查使用者的任何輸入裝置是否可以將滑鼠懸停在頁面上的元素上。 | |
| any-pointer | 確定使用者是否擁有指向裝置(例如滑鼠)以及該裝置是否準確。 | |
| aspect-ratio | 檢查視口或渲染表面的縱橫比。 | |
| color | 指定輸出裝置所需的顏色分量的位數。 | |
| color-gamut | 根據使用者裝置可以顯示的顏色範圍,將不同的樣式應用於網頁。 | |
| color-index | 檢查裝置可以顯示多少種顏色。 | |
| device-aspect-ratio | 檢查輸出裝置的寬度和高度之間的縱橫比。此媒體功能已過時,很少使用。請改用aspect-ratio媒體功能。 | |
| device-height | 檢查輸出裝置顯示區域的高度。此媒體功能已過時,很少使用。請改用height媒體功能。 | |
| device-width | 檢查輸出裝置顯示區域的寬度。此媒體特性已過時,很少使用。建議使用 width 媒體特性。 | |
| display-mode | 根據 web 應用程式的當前顯示模式檢測和設定 web 內容樣式。(fullscreen | standalone | minimal-ui | browser | window-controls-overlay) | |
| dynamic-range | 檢查使用者代理和輸出裝置是否支援高亮度、對比度和色深。 | |
| forced-colors | 檢查使用者是否在其裝置上啟用了強制顏色模式。 | |
| grid | 檢查使用者裝置或螢幕是否支援網格佈局。 | |
| height | 確定視窗的高度。 | |
| hover | 確定使用者的裝置是否能夠懸停在元素上。 | |
| monochrome | 確定輸出裝置的單色幀緩衝區中用於表示每個畫素的位數。 | |
| orientation | 檢查裝置的螢幕或頁面是處於縱向還是橫向。 | |
| overflow-block | 確定使用者裝置如何處理垂直方向上超出初始容器邊界的內容。 | |
| overflow-inline | 確定使用者裝置如何處理水平方向上超出初始容器邊界的內容。 | |
| pointer | 檢查使用者是否擁有可以用來指向和點選的指向裝置,例如滑鼠或觸控式螢幕。 | |
| prefers-color-scheme | 確定使用者是否更傾向於網站使用淺色模式或深色模式。 | |
| prefers-contrast | 檢查使用者是否希望網站具有更高或更低的對比度。 | |
| prefers-reduced-motion | 檢查使用者是否在其裝置上啟用了設定以減少不必要的移動動畫。 | |
| resolution | 檢查螢幕上每英寸顯示的畫素數量。 | |
| width | 確定視窗的寬度。 | |
| update | 檢查使用者裝置更改內容外觀後,內容在螢幕上的顯示效果。 |