Media query最簡單的基礎-跟著KP用21天征服Responsive Layout-W3

Media query最簡單的基礎-跟著KP用21天征服Responsive Layout-W3

更新於 發佈於 閱讀時間約 4 分鐘

Media query可以很複雜,但是這裡KP只談最簡單、最實用的基礎。


Media query的語法

如果去看w3school的教學,可以看到Media query語法結構如下:

@media not|only mediatype and (expressions) {
  CSS-Code;
}

media的條件組成有兩種:

1.media-type :針對的設備 ,分成print、screen、speech 、all 四種。

2.expression:MDN是把這叫media feature ,是裝置、環境的特徵。最常見的就是對viewpoint的特徵,min-width 與max-width

聽請來好像有點複雜,所以我就先來學最常用的起手式。



最常見最簡單的起手式

我們要使用media query,最常見的目的是在不同的裝置中設置設置不一樣的樣式。要做到這點,我們最常用的media feature是min-width 或max-width。

另外,media-type我們通常是不會特別設定,所以就忽略它吧。

這樣子,我們最簡單起手式就長這樣(也可以是max-width)。

@media(min-width:xxpx){ 
 CSS-Code;
}


min-width是什麼?

如果我們看到:@media(min-width:400px),那就代表這個query針對的寬度最小值是400px,也就是寫在這個query的樣式應用到的設備是寬度在400px以上。

我們可以把min-width看成 >=(大於等於)


max-width是什麼?

同理,如果我們看到:@media(max-width:400px),那就代表這個query針對的寬度最大值是400px,也就是寫在這個query的樣式應用到的設備是寬度在400px以下。

我們可以把min-width看成 <=(小於等於)

該用min-width還是max-width?

這就涉及到了你要用mobile first或是desktop first。如果是mobile first就用min-width,desktop first就用max-width。

mobile first就是先從手機板先開發,由小螢幕寫到大銀幕。我們來實際看例子。

css code  /*---開頭寫的css是針對0~400px*/
@media(min-width:400px){
 CSS-Code;
}
@media(min-width:800px){
 CSS-Code;
}


注意Media query的順序

css的樣式不是先寫先贏,而是後面的會覆蓋前面的樣式。因為這樣的特性,我們使用Media query有兩個原則:

1.放在最後面,在不是media query的cs code之後。

2.如果是mobile first,那min-width要從小寫到大。

3.如果是desk first,那max-width要從大寫到小。

如果用min-width從小寫到大大的會覆蓋住小的,例如:大於400的條件會覆蓋住大於800,因為大於400會包含大於800的範圍。

總結

只要掌握住用min-width或是max-width來設置Media query,我們就能實現RWD設計。

min-width就像是大於等於,max-width就像是小於等於。

如果要用Mobile First 的話(kp也建議大家這麼做,至於為什麼,我之後會再做一個視頻 我會在寫其他文章來分享),就用min-width來從小到大設置。

avatar-img
Shang的 前端開發筆記
3會員
13內容數
歡迎來到我的部落格!這裡是一個分享前端開發、貓咪寫真以及與菲律賓女友生活的文化衝擊與英文學習的個人空間。我熱愛前端技術,喜歡追求最新的網頁開發趨勢,並將這些知識分享給大家。
留言
avatar-img
留言分享你的想法!
對於前端工程師而言,如何處理圖片是一個看是基本但是又重要的技能。就像是日本料理的師傅要懂得處理生魚片一樣。 因為flexbox的flex-item有自動伸縮的功能,所以要注意裡面的圖片如何被伸縮。
在上一篇文章-跟著KP用21天征服Responsive Layout-W2-Flexbox基礎-flex-item的伸縮 。我們提到了flex-item的width會由自身的內容長度決定。這其實是件很不可控的事情,所以我們在開發上會傾向於對flex-item設置width。 flex-item
在學習了flexbox的起手式之後,讓我們來檢視與優化html結構吧。 <section class="three-col"> <div class="container"> <!--用來設置layout--> <div class="row"> <!-
歡迎來到第二周,這一周我們就要進入Flexbox了。今天我們會先認識Flexbox的起手式與flex-item的伸縮規則。
這周KP分享的第三個概念是max-width,我們在甚麼狀況下會使用它。 情境:電腦版的文字太長,而缺乏可讀性。 在前面學到了對width設置百分比後,我們常會用以下的方式來設計個container,來達成內容置中,左右留白,內容佔螢幕85%(你想佔百分之幾都可以)的效果。 .contai
這周KP分享的第二個概念是相對單位(relative units) ,使用上的陷阱與原則,以及如何應用它們來做Responsive Layout。
對於前端工程師而言,如何處理圖片是一個看是基本但是又重要的技能。就像是日本料理的師傅要懂得處理生魚片一樣。 因為flexbox的flex-item有自動伸縮的功能,所以要注意裡面的圖片如何被伸縮。
在上一篇文章-跟著KP用21天征服Responsive Layout-W2-Flexbox基礎-flex-item的伸縮 。我們提到了flex-item的width會由自身的內容長度決定。這其實是件很不可控的事情,所以我們在開發上會傾向於對flex-item設置width。 flex-item
在學習了flexbox的起手式之後,讓我們來檢視與優化html結構吧。 <section class="three-col"> <div class="container"> <!--用來設置layout--> <div class="row"> <!-
歡迎來到第二周,這一周我們就要進入Flexbox了。今天我們會先認識Flexbox的起手式與flex-item的伸縮規則。
這周KP分享的第三個概念是max-width,我們在甚麼狀況下會使用它。 情境:電腦版的文字太長,而缺乏可讀性。 在前面學到了對width設置百分比後,我們常會用以下的方式來設計個container,來達成內容置中,左右留白,內容佔螢幕85%(你想佔百分之幾都可以)的效果。 .contai
這周KP分享的第二個概念是相對單位(relative units) ,使用上的陷阱與原則,以及如何應用它們來做Responsive Layout。