CSS @media kuralları
- Önceki sayfa max-width
- Sonraki sayfa min-block-size
Tanım ve kullanım
@media kuralları, medya sorgularında farklı medya türleri/cihazlar için farklı stiller uygulamak için kullanılır.
Medya sorguları, birçok şeyi kontrol etmek için kullanılabilir, örneğin:
- Görüntü alanının genişliği ve yüksekliği
- Cihazın genişliği ve yüksekliği
- Yön (telefon veya tablet geniş ekran modunda mı yoksa dikey ekran modunda mı?)
- Çözünürlük
Medya sorguları, masaüstü bilgisayarlar, dizüstü bilgisayarlar, tabletler ve telefonlara özelleştirilmiş stil şablonları sağlamak için popüler bir tekniktir (duyarlı web tasarımı).
Sizin medya sorguları kullanarak belirli stillerin yalnızca yazdırılan belgeler veya ekran okuyuculara (mediatype: print, screen veya speech) uygulanmasını belirleyebilirsiniz.
Medya türleri dışında, medya özellikleri de vardır. Medya özellikleri, kullanıcı aracısı veya görüntü cihazının belirli özelliklerini test ederek, medya sorgularına daha fazla belirli ayrıntı sağlar. Örneğin, belirli bir genişliğin üzerinde veya altında tarayıcıya stil uygulayabilirsiniz.
Daha fazla bilgi için bkz.:
CSS Eğitimi:CSS medya sorgusu
CSS Eğitimi:CSS Medya Sorgusu Örneği
RWD Eğitimi:Medya sorguları ile yanıt verici Web tasarımı gerçekleştirme
JavaScript Kılavuzu:window.matchMedia() metodu
Örnek
Örnek 1
Eğer tarayıcı penceresinin genişliği 600px veya daha azsa, <body> öğesinin arka plan rengini 'açık mavi'ye değiştirin:
@media only screen and (max-width: 600px) { body { background-color: lightblue; } }
Daha fazla TIY örneği, sayfanın altında bulunabilir.
CSS Grammar
@media not|only mediatype and (mediafeature and|or|not mediafeature) { CSS-Code; }
not, only ve and anahtar kelimelerinin anlamı:
not: not anahtar kelimesi tüm medya sorgusunun anlamını tersine çevirir.
only: only anahtar kelimesi eski tarayıcıların belirtilen stilleri uygulamalarını önler, bu tarayıcılar medya özellikli medya sorgularını desteklemez. Modern tarayıcılara etkisi yoktur.
and: and anahtar kelimesi medya özelliklerini medya türü veya diğer medya özellikleri ile birleştirir.
Bunlar tümü de seçmeli. Ancak, not veya only kullanılırsa, medya türü de belirtilmelidir.
Farklı medya için farklı stiller kullanabilirsiniz, örneğin:
<link rel="stylesheet" media="screen and (min-width: 900px)" href="widescreen.css"> <link rel="stylesheet" media="screen and (max-width: 600px)" href="smallscreen.css"> ....
Medya türü
Değer | Açıklama |
---|---|
all | Varsayılan. Tüm medya türü cihazları için kullanılır. |
Yazıcılar için kullanılır. | |
screen | Bilgisayar ekranı, tablet, akıllı telefonlar vb. için kullanılır. |
speech | Sayfayı okumak için kullanılan ekran okuyucuları. |
Medya özellikleri
Değer | Açıklama |
---|---|
any-hover |
Herhangi bir kullanılabilir girdi mekanizması kullanıcıya (fare vb.) öğelere oturmayı izin verir mi? Media Queries Level 4'te eklendi. |
any-pointer |
Kullanılabilir girdi mekanizmalarında herhangi bir işaret cihazı var mı, varsa, hassasiyeti nasıl? Media Queries Level 4'te eklendi. |
aspect-ratio | Görüntüleme alanı (viewport) genişlik ve yükseklik oranları. |
color |
Çıktı cihazının her pikselin bit değeri, yaygın olarak 8, 16, 32 bit olabilir. Cihaz renk çıkışını desteklemezse bu değer 0 olur. |
color-gamut |
Kullanıcı aracısı ve çıktı cihazının yaklaşık olarak desteklediği renk alanı. Media Queries Level 4'te eklendi. |
color-index |
Çıktı cihazının renk sorgulama tablosundaki (color lookup table) girdi sayısı. Cihaz renk sorgulama tablosunu kullanmazsa bu değer 0 olur. |
device-aspect-ratio |
Çıktı cihazının genişlik ve yükseklik oranları. Media Queries Level 4'te kullanılmaktadır. |
device-height |
Çıktı cihazının render yüzeyinin (örneğin ekran) yüksekliği. Media Queries Level 4'te kullanılmaktadır. |
device-width |
Çıktı cihazının render yüzeyinin (örneğin ekran) genişliği. Media Queries Level 4'te kullanılmaktadır. |
display-mode |
Uygulamanın görüntüleme modu, web uygulamanın manifestindeki display üyesi tarafından belirlenir. Web App Manifest spec tanımlanmıştır. |
forced-colors |
Kullanıcı aracısı paletteyi sınırlar mı? Media Queries Level 5'te eklendi. |
grid | Çıktı cihazı grid ekranı mı yoksa nokta dizi ekranı mı kullanır? |
height | Görüntüleme alanı (viewport) yüksekliği. |
hover |
Ana giriş mekanizması, kullanıcıların elementlerin üzerine farenin konumunu tutmasına izin verir mi? Media Queries Level 4'te eklendi. |
inverted-colors |
Tarayıcı veya alt seviye işletim sisteminin renklerini tersine çevirip çevirmediği. Media Queries Level 5'te eklendi. |
light-level |
Mevcut aydınlatma düzeyi. Media Queries Level 5'te eklendi. |
max-aspect-ratio | Görüntüleme alanının genişliği ve yüksekliği arasındaki en büyük oran. |
max-color | Çıktı cihazının her renk bileşeninin en büyük bit sayısı. |
max-color-index | Cihazın gösterebileceği en büyük renk sayısı. |
max-height | Görüntüleme alanının en büyük yüksekliği, örneğin tarayıcı penceresi. |
max-monochrome | Tek renkli (gri ton) cihazlarda her 'renk' için en büyük bit sayısı. |
max-resolution | Cihazın en büyük çözünürlüğü, dpi veya dpcm ile ölçülür. |
max-width | Görüntüleme alanının en büyük genişliği, örneğin tarayıcı penceresi. |
min-aspect-ratio | Görüntüleme alanının genişliği ve yüksekliği arasındaki en küçük oran. |
min-color | Çıktı cihazının her renk bileşeninin en küçük bit sayısı. |
min-color-index | Cihazın gösterebileceği en küçük renk sayısı. |
min-height | Görüntüleme alanının en küçük yüksekliği, örneğin tarayıcı penceresi. |
min-monochrome | Tek renkli (gri ton) cihazlarda her 'renk' için en küçük bit sayısı. |
min-resolution | Cihazın en düşük çözünürlüğü, dpi veya dpcm kullanılarak belirlenir. |
min-width | Görüntüleme alanının en küçük genişliği, örneğin tarayıcı penceresi. |
monochrome |
Çıktı cihazının tek renkli çerçeve buffer'ında her pikselin bit derinliği. Cihaz siyah-beyaz ekran değilse, bu değer 0 olur. |
orientation | Pencere (viewport) döndürme yöntemi (yatay veya dikey mod). |
overflow-block |
Çıktı cihazı, blok eksen boyunca ekran genişliği (viewport) boyunca çıkan içerikle nasıl başa çıkar? Media Queries Level 4'te eklendi. |
overflow-inline |
İç çizgili eksen boyunca ekran genişliği (viewport) boyunca çıkan içerik kaydırılabilir mi? Media Queries Level 4'te eklendi. |
pointer |
Ana giriş mekanizması bir işaretçi cihazı mı? Eğer öyleyse, doğruluk düzeyi nasıl? Media Queries Level 4'te eklendi. |
prefers-color-scheme |
Kullanıcı parlatıcı mı yoksa koyu mı renk paleti seçmeyi tercih eder? Media Queries Level 5'te eklendi. |
prefers-contrast |
Kullanıcı, yakın renkler arasındaki kontrastı artırmak veya azaltmak için sistemden talepte bulunur mu? Media Queries Level 5'te eklendi. |
prefers-reduced-motion |
Kullanıcı sayfasında daha az dinamik etki görmek ister mi? Media Queries Level 5'te eklendi. |
prefers-reduced-transparency |
Kullanıcı daha düşük şeffaflık seçmeyi tercih eder mi? Media Queries Level 5'te eklendi. |
resolution | Çıktı cihazının çözünürlüğü, dpi veya dpcm kullanılarak belirlenir. |
scan | Çıktı cihazının tarayım süreci (televizyon gibi cihazlar için uygundur). |
scripting |
JavaScript gibi betiklerin kullanılabilir olup olmadığını tespit et. Media Queries Level 5'te eklendi. |
update |
Çıktı cihazının içerik renderleme sonuçlarını güncelleme sıklığı. Media Queries Level 4'te eklendi. |
width | Pencere (viewport) genişliği. |
Daha fazla örnek
örnek 2
Tarayıcının genişliği 600px veya daha küçükse, elementi gizleyin:
@media screen and (max-width: 600px) { div.example { display: none; } }
örnek 3
Eğer ekran genişliği 800 piksel veya daha genişse, arka plan rengini maviya ayarlamak için medya sorgusu kullanın; eğer ekran genişliği 400 ile 799 piksel arasında ise, arka plan rengini yeşil ayarlamak için medya sorgusu kullanın. Eğer ekran genişliği 400 pikselden küçükse, arka plan rengi hafif mavi olacaktır:
body { background-color: lightblue; } @media screen and (min-width: 400px) { body { background-color: hafif yeşil; } } @media screen and (min-width: 800px) { body { background-color: lavanda; } }
örnek 4
Bir yanıt verici navigasyon menüsü oluşturun (büyük ekranlarda yatay, küçük ekranlarda dikey olarak görüntülenir):
@media screen and (max-width: 600px) { .topnav a { float: none; width: 100%; } }
Örnek 5
Medya sorgularını kullanarak yanıt verici sütun düzeni oluşturun:
/* 992px veya daha küçük ekranlarda, dört sütundan iki sütuna dönüşün */ @media screen and (max-width: 992px) { .column { width: 50%; } } /* Genişliği 600 piksel veya daha az olan ekranlarda, sütunları yığınla değil, yan yana durdurun */ @media screen and (max-width: 600px) { .column { width: 100%; } }
Örnek 6
Medya sorgularını kullanarak yanıt verici bir web sitesi oluşturun:
Örnek 7
Medya sorguları, sayfanın döndürülme yöntemine göre sayfa düzenini değiştirmek için de kullanılabilir. Tarayıcı penceresinin genişliği yüksekliğiden büyük olduğunda (yani 'geniş ekran' yöntemi) yalnızca geçerli olan bir grup CSS özelliği yazabilirsiniz.
Eğer yön geniş ekran modunda ise, hafif mavi arka renk kullanın:
@media only screen and (orientation: landscape) { body { background-color: lightblue; } }
Örnek 8
Metin rengini, belgeyi ekran上显示时为绿色,打印时为黑色,使用媒体查询设置:
@media screen { body { color: green; } } @media print { body { color: black; } }
Örnek 9
Virgülle ayrılmış liste: Mevcut medya sorgusuna bir diğer medya sorgusu eklemek için virgül kullanın (OR işleci gibi davranır):
/* 600px ile 900px arasında veya 1100px'dan büyük genişlikte - <div> görünümünü değiştir */ @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; } }
Tarayıcı desteği
Tablo içindeki rakamlar, @media kurallarının tamamen desteklenen ilk tarayıcı sürümünü belirtmektedir.
Chrome | IE / Edge | Firefox | Safari | Opera |
---|---|---|---|---|
21 | 9 | 3.5 | 4.0 | 9 |
- Önceki sayfa max-width
- Sonraki sayfa min-block-size