link標籤的屬性media有哪些值?都有什麼作用?

王铁柱6發表於2024-12-05

link標籤的media屬性指定樣式表應用於哪種媒體型別或裝置。它接受多種值,可以是單個值,也可以是用逗號分隔的多個值。以下是一些常見的值及其作用:

主要媒體型別:

  • all: 適用於所有裝置。這是預設值,如果省略media屬性,則等同於media="all"
  • print: 適用於列印預覽模式和列印頁面。用於設定列印樣式,例如頁面邊距、字型大小、隱藏不需要列印的元素等。
  • screen: 適用於彩色計算機螢幕。這是最常用的值之一,用於設定在螢幕上顯示的樣式。
  • speech: 適用於語音合成器。用於控制螢幕閱讀器或其他語音裝置如何朗讀頁面內容。

其他媒體型別(及特徵):

除了以上主要型別,還可以使用更具體的媒體特徵進行區分:

  • aspect-ratio: 指定輸出裝置的寬高比。例如:media="(aspect-ratio: 16/9)" 適用於寬高比為 16:9 的螢幕。
  • color: 指示裝置是否支援彩色。media="(color)" 適用於支援彩色的裝置。media="(color-index)"(已棄用) 適用於使用索引色的裝置。
  • color-gamut: 指定輸出裝置的顏色域。例如:media="(color-gamut: srgb)" 適用於支援 sRGB 顏色域的裝置。
  • grid: 指示輸出裝置是否基於網格。media="(grid)" 適用於基於網格的裝置,例如一些老式手機。
  • height: 指定輸出裝置的高度。例如:media="(height: 800px)" 適用於高度為 800 畫素的裝置。
  • hover: 指示使用者是否可以使用指標裝置(例如滑鼠)懸停在元素上。media="(hover: hover)" 適用於支援懸停的裝置。media="(hover: none)" 適用於不支援懸停的裝置,例如觸控式螢幕。
  • orientation: 指定輸出裝置的方向是橫向還是縱向。media="(orientation: portrait)" 適用於縱向模式。media="(orientation: landscape)" 適用於橫向模式。
  • pointer: 指示使用者的主要輸入機制的精度。media="(pointer: fine)" 適用於可以使用滑鼠或其他精確指標裝置的裝置。media="(pointer: coarse)" 適用於使用手指或其他粗略指標裝置的裝置,例如觸控式螢幕。
  • resolution: 指定輸出裝置的解析度。例如:media="(resolution: 96dpi)" 適用於解析度為 96dpi 的裝置。
  • scan: 指定電視型別螢幕的掃描過程。例如:media="(scan: progressive)" 適用於逐行掃描的螢幕。
  • update: 指示輸出裝置重新整理內容的頻率。media="(update: slow)" 適用於重新整理頻率低的裝置,例如電子墨水屏。
  • width: 指定輸出裝置的寬度。例如:media="(width: 1024px)" 適用於寬度為 1024 畫素的裝置。

邏輯運算子:

可以使用邏輯運算子組合多個媒體查詢:

  • and: 所有條件都必須滿足。例如:media="screen and (min-width: 768px)"
  • or: 至少有一個條件滿足。例如:media="screen, print" (相當於 screen or print)
  • not: 排除特定條件。例如:media="not print"
  • , (逗號): 相當於 or 運算子。

示例:

<link rel="stylesheet" href="style.css" media="screen and (min-width: 768px)">
<link rel="stylesheet" href="print.css" media="print">

第一個連結標籤中的樣式表僅在螢幕寬度大於或等於 768 畫素時應用。第二個連結標籤中的樣式表僅在列印時應用。

透過使用 media 屬性,可以根據不同的裝置和環境定製樣式,從而提供最佳的使用者體驗。 記住,合理使用 media 屬性可以提高網站的效能和可訪問性。

相關文章