media query中的條件重疊

來源:互聯網
上載者:User

標籤:使用   sp   div   on   問題   bs   size   應用   res   

  想必接觸過響應式布局的朋友對於media query都不會陌生,響應式布局也正是通過這個關鍵的屬性來實現的。一些響應式布局的教程中通常都會進行如下類似設定來實現不同視口寬度條件下的布局樣本:

@media screen and (max-width:600px){/* 樣式一 */}

@media screen and (min-width:600px) and (max-width:960px){/* 樣式二 */}

@media screen and (min-width:960px){/* 樣式三 */}

  根據這些教程的解釋,這種設定的效果是:當視口寬度小於等於600px時,應用樣式一;當視口寬度大於等於600px且小於等於960px時,應用樣式二;當視口寬度大於等於960px時,應用樣式三。粗看上去沒有問題,根據不同視口寬度設定了三種樣式效果,但是細看的話問題就來了。上面在描述視口寬度時,都使用了“等於”這個邏輯關係。如果只針對一條規則就沒什麼好說的了,但600px和960px這兩個值都同時滿足了兩條規則,即滿足第一條規則的小於等於600px,又滿足第二條規則的大於等於600px,這樣便產生了條件重疊的問題。那麼當視窗的寬度正好處於600px或960px這種處於分界位置的值的時候,會是怎樣呢?

  我們可以進行一個簡單的實驗,demo很簡單,實現的效果是一個<div>在上述三種像素範圍內的顏色切換,重點觀察瀏覽器視口寬度在600px和960px像素時<div>的顏色到底受哪個media query設定的影響。瀏覽器寬度採用手動展開表單的方式進行調整,綁定window對象的onresize事件以在console視窗中輸出當前的視窗寬度值。

  通過上述實驗發現,當瀏覽器寬度值為600px時,其效果還是停留在樣式一的效果上。當寬度調整為601px時,其會變成樣式二的效果。也就是說,當一個值作為一個條件的上限的同時又作為另一個條件的下限時,其對於下限條件而言並不包含等於的關係。同理,對於樣式三的min-width:960px而言,其含義也是在大於960px的情況下,並不包含等於960px的情況。

  還有一種情況,比如我們想在不同的視口寬度下改變網頁元素的布局,比如將橫向排列改為縱向排列。當這種頁面處於600px或960px這種分界值時,頁面元素的排列不會符合css中設定的任何一種規則,具體是什麼樣子可以自己手動嘗試一下。

 

media query中的條件重疊

相關文章

聯繫我們

該頁面正文內容均來源於網絡整理,並不代表阿里雲官方的觀點,該頁面所提到的產品和服務也與阿里云無關,如果該頁面內容對您造成了困擾,歡迎寫郵件給我們,收到郵件我們將在5個工作日內處理。

如果您發現本社區中有涉嫌抄襲的內容,歡迎發送郵件至: info-contact@alibabacloud.com 進行舉報並提供相關證據,工作人員會在 5 個工作天內聯絡您,一經查實,本站將立刻刪除涉嫌侵權內容。

A Free Trial That Lets You Build Big!

Start building with 50+ products and up to 12 months usage for Elastic Compute Service

  • Sales Support

    1 on 1 presale consultation

  • After-Sales Support

    24/7 Technical Support 6 Free Tickets per Quarter Faster Response

  • Alibaba Cloud offers highly flexible support services tailored to meet your exact needs.