CSS 習作|響應式網站・width、max-width、min-width 是什麼?

閱讀時間約 5 分鐘
raw-image

▍ block-level element (像水一樣的區塊元素 💦)

進入 width、max-width、min-width 筆記前,再複習一次 block-level element 的特性:區塊元素會盡可能向左和向右延伸,佔據可用的全部寬度。
因此,為 block-level element 設定寬度,可以防止它延伸到其容器的邊緣。
且 block-level element 將依據不同寬度屬性設定,來佔據指定的寬度!

如下圖,沒有設定寬度屬性的區塊元素,會竭盡所能的向左向右不斷延伸,但有被設定寬度屬性的區塊元素,就會像被裝進容器的水一樣,不能動彈 ↓

區塊元素與寬度

區塊元素與寬度

寬度要怎麼設定呢?下面開始筆記「width、max-width、min-width」三種不同的寬度屬性設定!


▍➊ width 屬性

CSS width Property

width 用來設定元素的寬度,但 width 不會把 padding、border、margin 所佔據的面積也算進去,如果設定一個元素為 width: 500px; 時,則 width 作用範圍僅在 content-box 區塊↓

盒模型

盒模型

※ 注意:min-width 和 max-width 屬性會覆寫 width 屬性。

將容器設定 width: 1000px;,伸縮瀏覽視窗時,變化如下↓:

raw-image


當瀏覽視窗伸縮至小於解析度 1000px 時,帶有 width: 1000px; 的容器仍不被壓縮大小,且瀏覽器產生捲軸 Scrollbar。

閱讀 w3schools CSS width Property


▍➋ max-width 屬性

CSS max-width Property
max-width 用來設定元素的最大寬度,當一個容器被設為 max-width: 500px; 時,放在容器裡的 <p> 文字段落,無論字數有多少字,<p> 都會被限制在 max-width: 500px; 這個空間裡面,如下↓:

raw-image


而當拉寬瀏覽器視窗時,被設為 max-width: 500px; 的容器以及放在容器裡的<p>,依舊會被限制在這個寬度裡面,不會因為視窗變寬而改變寬度。
而且,當縮小瀏覽器,使視窗螢幕解析度小於 500px 時,帶有 max-width: 500px; 的容器以及放在容器裡的 <p>,會跟著容器的寬度自適應縮小,如下↓:

raw-image


▍➌max-width 和 width 的差異:

max-width 會迎合外層容器,若在 .container 設置 max-width: 1200px;,則 .container 最大寬度為 1200px,不會因為拉大視窗使 .container 超出 1200px,而當視窗縮小時,.container 則跟著父層容器自適應縮小。

相反的,width 不能自適應,鎖死寬度的情況下,當縮小視窗時就會出現 x 軸。
( x軸 = 捲軸 Scrollbar )


▍➍ min-width 屬性

CSS min-width Property

min-width 用來設定元素的最小寬度,當一個容器被設為 min-width: 1000px; 時,容器以及放在容器裡的 <p> 文字段落將被限制在這個最小寬度裡。

而當瀏覽視窗伸縮至小於解析度 1000px 時,帶有 min-width: 1000px; 的容器仍維持它的最小寬度,而瀏覽器則產生捲軸 Scrollbar。


▍@media (max-width: 992px){...}

● 螢幕解析度 ≤ 992px

raw-image

@media (max-width: 992px){...} 表示當螢幕解析度 ≤ 992px 的時候 (螢幕解析度小於 992px、等於 992px 的時候) ,載入這一段語法 → .container{ color: red;} ,而原本的 .container{ color: #000;} 就被覆蓋掉了,文字顏色則從黑色變成紅色。

● 螢幕解析度 ≤ 768px

raw-image

@media (max-width: 768px){...} 表示當螢幕解析度 ≤ 768px 的時候 (螢幕解析度小於 768px、等於 768px 的時候) ,載入這一段語法 → .container{ color: green;} ,而原本的 .container{ color: red;} 就被覆蓋掉了,文字顏色則從紅色變成綠色。


▍@media (min-width: 992px){...}

● 螢幕解析度 ≥ 992px

raw-image

@media (min-width: 992px){...} 表示當螢幕解析度 ≥ 992px 的時候 (螢幕解析度大於 992px、等於 992px 的時候) ,載入這一段語法 → .container{ color: blue;} ,而原本的 .container{ color: #000;} 就被覆蓋掉了,文字顏色則從黑色變成藍色,而當螢幕解析度小於 992px 的時候,文字顏色才變回黑色

小結

我經常會把 max-widthmin-width 記錯,現在要再三刻在腦海裡🔨🔨:

max-width 用來設定元素的最大寬度。
min-width 用來設定元素的最小寬度。
@media (max-width: 992px){...} 當螢幕解析度 ≤ 992px 的時候載入語法。
@media (min-width: 992px){...} 當螢幕解析度 ≥ 992px 的時候載入語法。

本篇也是給自己的認識與釐清,如有錯誤請務必告訴我,感激不盡!

Practice make perfect, 我是正在自我習作中的 Draw,我們下篇見 🙇🏻

4會員
10內容數
從零開始,記錄網頁設計的學習過程。
留言0
查看全部
發表第一個留言支持創作者!
你可能也想看
創作者要怎麼好好休息 + 避免工作過量?《黑貓創作報#4》午安,最近累不累? 這篇不是虛假的關心。而是《黑貓創作報》發行以來可能最重要的一篇。 是的,我們這篇講怎麼補充能量,也就是怎麼休息。
Thumbnail
avatar
黑貓老師
2024-06-29
CSS 程式札記 : 字型與文本如何透過 CSS 來美化和增強文本的可讀性,對於提升用戶體驗至關重要。本文將介紹如何使用 CSS 來處理網頁上的文本,包括字型設定、文本排列、裝飾等多方面。
Thumbnail
avatar
梧笙
2024-01-22
CSS Grid 學習筆記 (二)CSS Grid 基礎學習筆記第二彈
Thumbnail
avatar
蕭宇廷
2023-12-07
CSS Grid 學習筆記 (一)紀錄 CSS Grid 的基礎用法。
Thumbnail
avatar
蕭宇廷
2023-12-06
CSS 程式札記 : Media Queries 媒體查詢本文將介紹如何使用 CSS Media Queries 來創建適應不同裝置的網頁,在現今多裝置的網頁設計中,可以透過 CSS Media Queries 來讓我們根據不同的裝置特性,如螢幕尺寸、解析度等,來應用不同的樣式規則。
Thumbnail
avatar
梧笙
2023-08-04
CSS 程式札記 : margin、padding、border、box-sizing本文將介紹 CSS 的四個基本概念:margin(外邊距)、padding(內邊距)、border(邊框)和 box-sizing(盒模型),接下來將透過實際的程式碼範例來展示這些概念如何運作。
Thumbnail
avatar
梧笙
2023-08-03
CSS 程式札記 : position 定位本文將介紹 CSS 中的position屬性,position是用於控制網頁元素在頁面上的排列,接下來將逐一介紹position屬性的五種不同值:static, relative, absolute, fixed, 和 sticky,以及它們如何影響元素的排列。
Thumbnail
avatar
梧笙
2023-07-31
CSS 程式札記 : Flexbox 彈性盒子本文將介紹 CSS Flexbox,CSS Flexbox 是網頁設計的佈局工具,Flexbox 能使元素的排列和對齊變得更加靈活和直觀,從而大大簡化了響應式網頁設計的過程,通過了解 Flexbox 的概念和屬性,你將能夠利用 Flexbox 創建靈活且響應性強的網頁佈局。
Thumbnail
avatar
梧笙
2023-07-30
CSS 程式札記 : 選擇器在網頁中,每個按鈕、文字或圖片等都是通過 CSS 來設定它們的樣子,要做到這點,我們就需要用到 CSS 選擇器。本文會從最簡單的選擇器開始講起,讓你了解如何使用 CSS 選擇器。
Thumbnail
avatar
梧笙
2023-07-28
學習如何用 React & Redux | TypeScript | Tailwind CSS 來做一個繪圖App想要知道如何用最新技術來製作一個App嗎? 跟著JayLin用React | Redux Tool Kit | TypeScript | TailwildCSS 來製作一個Drawing App
Thumbnail
avatar
JayLinXR
2023-05-16
【自學程式】什麼是CSS選擇器? 學習如何改變網頁內容的樣式與HTML不同,CSS是專門修改網頁內容「樣式」的程式語言,也就是說你沒有辦法透過CSS去新增網頁的文字或是圖片等相關的內容,但你可以透過HTML新增網頁內容後,再使用CSS去修改他的樣式,例如⋯⋯
Thumbnail
avatar
Vivian Yeh
2021-06-10