2012-04-24 35 views
25

Blogumun duyarlı web tasarımı göz önünde bulundurularak yeniden tasarlanması ve "önce mobil" yönteminin kullanılması - Kısacası herhangi bir çoğaltmadan kaçınmak için min-width kullanmaya çalışıyorum veya css .. no display: yok vs ..CSS özgüllüğü, Ortam Sorguları ve min-genişlik

Sorunum, bir CSS değeri üzerine yazmam gerektiğinde, alt min genişliğinin öncelikli olmasıdır. Örnek: Bir 2.2em h2 almak için yukarıdaki 600px kararları yaşıyorum ve ne zaman

@media only screen and (min-width: 600px) { 
    h2 { font-size: 2.2em; } 
} 

@media only screen and (min-width: 320px) { 
    h2 { font: normal 1.7em/2.1em Helvetica, sans-serif; } 
} 

ben beklediğiniz, ancak bunun yerine ben 2.2em beyanı olduğunu görüyoruz benim Dev araçlarında .. 1.7em olsun Orada, ama diğeri öncelikli .. Bu mantıklı değil!

Mini genişlikleri kullanmaya devam edebilir ve daha yüksek çözünürlüklerde, daha güçlü seçiciler veya maksimum genişlik kullanmadan, etkili bir şekilde beyanların üzerine yazabilir miyim?

+2

aşağıda BoltClock cevabı üzerine netleştirmek için, bu tarayıcı ne düşündüğünü geçerli: İlk Medya sorgusunun vurur 'Oh, 600'lük bir min genişliğim var! Yazı tipi boyutunu 2,2 m'ye ayarlayalım! '. Sonra bir sonraki medya sorgusu üzerine devam ediyor, 'Ah, 320'lik bir min genişliğim var! Şimdi yazı tipimi şuna ayarlayalım! '. –

+1

Tek boynuzlu atın cevabı doğrudur, ama belki min-genişlik yerine maksimum genişlik açısından düşünmelisiniz. Daha küçük ekranlarda daha küçük bir H2 boyutu istiyorsanız, 'max-width: 599px' için bir sorguda' 'font-size: 2.2em '' ortam sorgusuz yazıp' font-size: 1.7em' yazabilirsiniz. –

+0

max-width gerçekten iyi bir uygulama değil .. açıklamak zor ama max-width kullandığınızda çoğaltan CSS yeniden yazmayı bitirin .. http://www.html5rocks.com/en/mobile/responsivedesign/ –

cevap

32

Ben bir 2.2em h2 elde etmek için 600px ve üzeri çözünürlüklerde olduğumda beklerdim, ama bunun yerine 1.7em aldım .. Dev araçlarımda 2.2em bildiriminin olduğunu görüyorum ama diğeri öncelik kazanır .. Anlamsızdır!

Mantıklı. Medya min-width: 600px'u karşılarsa, o zaman min-width: 320px; Diğer bir deyişle, en az 600 piksel genişliğinde olan herhangi bir şey de en az 320 piksel genişliğindedir, çünkü 600 320'den büyüktür.

Her iki ortam sorgusu doğru olarak değerlendirildiği için, en son meydana gelen kural, kaskadta önceliklidir. Bu kodunuzu eşdeğeri: 2.2em geliştirici araçları görünür ama belirgin bir etkisi olmaz açıklıyor

h2 { font-size: 2.2em; } 
h2 { font: normal 1.7em/2.1em Helvetica, sans-serif; } 

.

en kolay düzeltme doğru sırayla etrafında çok Kurallarınızın kaskad sizin @media blok geçmektir:

@media only screen and (min-width: 320px) { 
    h2 { font: normal 1.7em/2.1em Helvetica, sans-serif; } 
} 

@media only screen and (min-width: 600px) { 
    h2 { font-size: 2.2em; } 
} 
+1

CSS özgüllüğü de görünüm sırasını hesaba katıyor ... bazen bilgisayarın önünden 12 saat harcadığınızda en belirgin şeyleri kaçırıyorsunuz! Teşekkürler Unicorn :) –

+0

Anlamadım. En az 600 piksel genişliğinde bir medya da en az 320 piksel genişliğinde nasıl olur? Yani gerçekten ** ** 320px geniş olabilir (ör., tarayıcı penceresini daha küçük olacak şekilde yeniden boyutlandırarak)? –

+0

@John Wang: 600 piksel, 320 pikselden fazla. Yani bir şey 600 piksel veya daha genişse, ayrıca 320 piksel veya daha geniş. Bu "en azından" anlamına gelir. – BoltClock

İlgili konular