CSS @media aturan
- 上一页 max-width
- 下一页 min-block-size
Definisi dan penggunaan
@media aturan digunakan dalam pemeriksaan media untuk melaksanakan gaya yang berbeza untuk jenis media/permataan berbeza.
Pemeriksaan media boleh digunakan untuk memeriksa banyak hal, seperti:
- Lebar dan tinggi viewport
- Lebar dan tinggi peranti
- Arah (apakah ponsel atau tablet berada dalam mode tinggi atau lebar?)
- Resolusi
Penggunaan pemeriksaan media adalah teknologi yang popular untuk menyediakan gaya yang disesuaikan untuk desktop, komputer ribut, tablet dan ponsel (reka bentuk laman web yang responsif).
Anda boleh guna pemeriksaan media untuk tentukan beberapa gaya hanya untuk dokumen cetak atau pengguna penceritaan layar (mediatype: cetak, skrin atau bicara).
Selain jenis media, terdapat juga karakteristik media. Karakteristik media memberikan lebih banyak perincian khusus untuk kawalan media melalui membenarkan pengujian khas untuk kawalan penggunaan atau peranti paparan. Contohnya, anda boleh hanya mengaplikasikan gaya kepada skrin yang lebih besar atau lebih kecil daripada lebar tertentu.
Lihat juga:
Panduan CSS:Pencarian Media CSS
Panduan CSS:Contoh kawalan media CSS
Panduan RWD:Melalui kawalan media untuk perekaan Web responsif
Panduan JavaScript:Metode window.matchMedia()
Contoh
Contoh 1
Jika lebar tingkap perekaan browser adalah 600px atau lebih kecil, tingkat warna latar belakang elemen <body> diubah kepada 'biru halus':
@media only screen and (max-width: 600px) { body { background-color: lightblue; } }
Lebih banyak contoh TIY dapat ditemui di bawah halaman.
Bentuk Bahasa CSS
@media not|only mediatype and (mediafeature and|or|not mediafeature) { CSS-Code; }
Makna kata kunci not, only dan and:
not: Katakunci not akan kebalikan makna kawalan media keseluruhan.
only: Katakunci only boleh mencegah perekaan lama untuk mengaplikasikan gaya yang ditentukan, yang tidak mendukung kawalan media dengan karakteristik media. Ia tidak mempengaruhi perekaan moden.
and: Katakunci and akan menggabungkan karakteristik media dengan jenis media atau karakteristik media lain.
Mereka adalah pilihan. Tetapi, jika digunakan not atau only, jenis media juga perlu ditentukan.
Anda boleh menggunakan gaya berbeza untuk media yang berbeza, seperti ini:
<link rel="stylesheet" media="screen and (min-width: 900px)" href="widescreen.css"> <link rel="stylesheet" media="screen and (max-width: 600px)" href="smallscreen.css"> ....
Jenis media
Nilai | Penerangan |
---|---|
all | Lalai. Dipergunakan untuk semua jenis peranti media. |
Dipergunakan untuk printer. | |
screen | Dipergunakan untuk skrin komputer, tablet, smartphone dan sebagainya. |
speech | Dipergunakan untuk perekaan bacaan layar halaman. |
Karakteristik media
Nilai | Penerangan |
---|---|
any-hover |
Adakah ada mana-mana mekanisme input yang membenarkan pengguna (seperti mouse) untuk menempatkan di atas elemen? Ditambahkan di Media Queries Level 4. |
any-pointer |
Adakah ada mana-mana peralatan pengecaman dalam mekanisme input yang tersedia, jika ada, apakah keutamaannya seperti mana? Ditambahkan di Media Queries Level 4. |
aspect-ratio | 视口(viewport)的宽高比。 |
color |
输出设备每个像素的比特值,常见的有 8、16、32 位。 如果设备不支持输出彩色,则该值为 0。 |
color-gamut |
用户代理和输出设备大致程度上支持的色域。 Ditambahkan di Media Queries Level 4. |
color-index |
输出设备的颜色查询表(color lookup table)中的条目数量。 如果设备不使用颜色查询表,则该值为 0。 |
device-aspect-ratio |
输出设备的宽高比。 已在 Media Queries Level 4 中被弃用。 |
device-height |
输出设备渲染表面(如屏幕)的高度。 已在 Media Queries Level 4 中被弃用。 |
device-width |
输出设备渲染表面(如屏幕)的宽度。 已在 Media Queries Level 4 中被弃用。 |
display-mode |
应用程序的显示模式,如 web app 的 manifest 中的 display 成员所指定 在 Web App Manifest spec 被定义。 |
forced-colors |
检测是用户代理否限制调色板。 Ditambahkan di Media Queries Level 5. |
grid | 输出设备使用网格屏幕还是点阵屏幕? |
height | 视口(viewport)的高度。 |
hover |
主输入机制是否允许用户将鼠标悬停在元素上? Ditambahkan di Media Queries Level 4. |
inverted-colors |
浏览器或者底层操作系统是否反转了颜色。 Ditambahkan di Media Queries Level 5. |
light-level |
当前环境光水平。 Ditambahkan di Media Queries Level 5. |
max-aspect-ratio | 显示区域的宽度和高度之间的最大比例。 |
max-color | 输出设备每个颜色分量的最大位数。 |
max-color-index | 设备可以显示的最大颜色数。 |
max-height | 显示区域的最大高度,例如浏览器窗口。 |
max-monochrome | 单色(灰度)设备上每种“颜色”的最大位数。 |
max-resolution | 设备的最大分辨率,使用 dpi 或 dpcm。 |
max-width | 显示区域的最大宽度,例如浏览器窗口。 |
min-aspect-ratio | 显示区域的宽度和高度之间的最小比例。 |
min-color | 输出设备每个颜色分量的最小位数。 |
min-color-index | 设备可以显示的最小颜色数。 |
min-height | 显示区域的最小高度,例如浏览器窗口。 |
min-monochrome | 单色(灰度)设备上每种“颜色”的最小位数。 |
min-resolution | Resolusi terendah peralatan, menggunakan dpi atau dpcm. |
min-width | Lebar minimum area tampilan, contohnya jendela browser. |
monochrome |
Bit depth per pixel dalam frame buffer tunggal peralatan keluar. Jika peralatan bukan layar hitam-putih, nilai ini adalah 0. |
orientation | Arah putar tetingkap (mode landscape atau portrait). |
overflow-block |
Bagaimana peralatan keluar menangani konten yang meluas ke dalam sumbu block (viewport)? Ditambahkan di Media Queries Level 4. |
overflow-inline |
Apakah konten yang meluas ke dalam sumbu inline dapat digerakkan? Ditambahkan di Media Queries Level 4. |
pointer |
mekanisme input utama adalah peralatan penunjuk? Jika ya, keutamaannya seperti mana? Ditambahkan di Media Queries Level 4. |
prefers-color-scheme |
Deteksi apakah pengguna mendahului skema warna yang cerah atau gelap. Ditambahkan di Media Queries Level 5. |
prefers-contrast |
Deteksi apakah pengguna meminta untuk meningkatkan atau menurunkan kontras warna yang sama. Ditambahkan di Media Queries Level 5. |
prefers-reduced-motion |
Apakah pengguna ingin terlihat lebih sedikit efek gerakan di halaman. Ditambahkan di Media Queries Level 5. |
prefers-reduced-transparency |
Apakah pengguna mendahului transparensi yang lebih rendah? Ditambahkan di Media Queries Level 5. |
resolution | Resolusi peralatan keluar, menggunakan dpi atau dpcm. |
scan | Proses pemantauan peralatan keluar (terapkan untuk TV dll.). |
scripting |
Deteksi apakah scripting (contohnya JavaScript) tersedia. Ditambahkan di Media Queries Level 5. |
update |
Frekuensi pembaruan konten perecapan peralatan keluar. Ditambahkan di Media Queries Level 4. |
width | Lebar tetingkap (viewport). |
Beberapa contoh lain
contoh 2
Jika lebar browser 600px atau kurang, sembunyikan elemen:
@media screen and (max-width: 600px) { div.example { display: none; } }
contoh 3
Jika lebar layar 800 piksel atau lebar, gunakan media query untuk menetapkan warna latar belakang menjadi lilin; jika lebar layar antara 400 hingga 799 piksel, gunakan media query untuk menetapkan warna latar belakang menjadi hijau muda. Jika lebar layar kurang dari 400 piksel, warna latar belakang adalah biru muda:
body { background-color: lightblue; } @media screen and (min-width: 400px) { body { background-color: lightgreen; } } @media screen and (min-width: 800px) { body { background-color: lavender; } }
contoh 4
创建一个响应式导航菜单(在大屏幕上水平显示,在小屏幕上垂直显示):
@media screen and (max-width: 600px) { .topnav a { float: none; width: 100%; } }
例子 5
使用媒体查询来创建响应式列布局:
/* 在 992px 或更小的屏幕上,从四列变为两列 */ @media screen and (max-width: 992px) { .column { width: 50%; } } /* 在宽度小于或等于 600 像素的屏幕上,使各列堆叠,而不是并排 */ @media screen and (max-width: 600px) { .column { width: 100%; } }
例子 6
使用媒体查询来创建响应式网站:
例子 7
媒体查询还可以用于根据浏览器的方向更改页面的布局。您可以写一组 CSS 属性,这些属性仅在浏览器窗口的宽度大于其高度(即“横屏”方向)时才适用。
如果方向处于横屏模式,则使用浅蓝色背景色:
@media only screen and (orientation: landscape) { body { background-color: lightblue; } }
例子 8
使用媒体查询将文本颜色设置为在屏幕上显示文档时为绿色,在打印时为黑色:
@media screen { body { color: green; } } @media print { body { color: black; } }
例子 9
逗号分隔的列表:使用逗号将另一个媒体查询添加到已存在的媒体查询中(它的行为类似 OR 运算符):
/* 当宽度介于 600px 和 900px 之间或大于 1100px 时 - 改变 <div> 的外观 */ @media screen and (max-width: 900px) and (min-width: 600px), (min-width: 1100px) { div.example { font-size: 50px; padding: 50px; border: 8px solid black; background: yellow; } }
浏览器支持
表格中的数字注明了完全支持 @media 规则的首个浏览器版本。
Chrome | IE / Edge | Firefox | Safari | Opera |
---|---|---|---|---|
21 | 9 | 3.5 | 4.0 | 9 |
- 上一页 max-width
- 下一页 min-block-size