方格精選

【CSS 教學】inline、block、inline-block 使用時機講解

更新 發佈閱讀 5 分鐘

初期在撰寫 HTML、CSS 時,可能會發現有一些莫名其妙的排版狀況會出現:

明明想要某個欄位的寬高為 200px,卻發現自己不知道為什麼怎麼更改都會改不動,又或者寬高更改了,卻沒有辦法與其他元素並列。

上述的狀況,通常都是在不熟悉 HTML display 特性而產生的狀況下才會出現,今天就來跟大家分享,關於 HTML 元素各自的預設的 display 特性,及該在什麼樣的場合下來使用 display:inline、block、inline-block。

display:inline、block、inline-block 到底差在哪?

簡單來說,我們常見的網頁元素通常會帶有預設的 display 屬性,預設的 display 會決定 HTML 會如何在網頁中排列,預設的屬性大致分為三種:block、inline、inline-block 等:

1. display:block:


帶有 display:block 屬性的元素,像是 <div>、 <h1>、<p> 等,在不更改 display 的狀態下,會在容器中呈現滿版,並且可以透過 width、height、max-width、max-height 等 CSS 屬性來更改該元素的寬高。

在使用區塊元素時,可能會有一個誤區需要注意:帶有 display:block 屬性的元素即便更改了寬度,剩餘的空間依然還是會在網頁上佔有空間,後續的元素並不會因為寬度縮小了,而向上並排。


2. display:inline:


帶有 display:inline 屬性的元素,像是<a>、<img>、<span> 等, 會依照元素中的內容來決定內容的寬高,不會佔滿容器橫向的剩餘空間,在不超過容器的狀況下,可以與其他元素並列。

與帶有 display:block 屬性的元素不同,並不能透過 width、height、max-width、max-height 等 CSS 屬性來更改該元素的寬高。

在範例中可以看到,如果我們將 <div> 元素改為 display:inline,原本的寬高設定不僅會失效,也會額外產生並列的效果。

在開發上時,display:inline 屬性有時會顯得很雞肋,因為在大部分的狀態下,畫面上的文字內容並不是固定字數的,我們並不能預期畫面呈現的內容是否能如同我們所預期寬高一樣。

3. display: inline-block:


常見的 HTML 元素在預設的情況下,不會帶有 display:inline-block 屬性,通常都是在有需求時,我們會將特定元素的 display 值設為 inline-block。

帶有 display:inline-block 屬性的元素會依照會依照元素中的內容來決定內容的寬高,不會佔滿容器橫向的剩餘空間,還可以額外透過 width、height、max-width、max-height 等 CSS 屬性來更改該元素的寬高。

在範例中可以看到,如果我們將 <div> 元素改為 display:inline-block,原本的寬高設定不僅不會失效,原本在 block 會換行的問題也解決了,讓兩個元素可以在能更改寬高的狀態下,也能並列。

display: inline-block 可以說是集 block 與 inline 的優點為一身,通常會應用在 a 連結上,讓原本不能更改寬高的 <a> 標籤,不僅能依照文字內容自適應大小,也能依照網頁需求,透過 padding 屬性增加點擊範圍、自訂寬高。

如果你對於 HTML、CSS 更改樣式的方式不太熟悉的話,可以參考此篇文章:


希望今天的文章有幫助到正在閱讀的你,如果你喜歡我的文章的話,可以留下你的愛心或是收藏我的文章,也或者可以點選「贊助」,你的一杯咖啡絕對是我持續寫下去的動力!或是透過拍拍手,用你小小的行動支持我的創作!

我是Vivian,我們下次見。

留言
avatar-img
Vivian Yeh - 跨領域轉職的軟體工程師
460會員
103內容數
為了追求可以窩在座位上、可以心無旁騖思考問題、座位可以亂七八糟沒關係、不需要到處哈腰點頭跑客戶,不用腳踩十公分、連妝都可以不用化的職場人生,文組少女毅然決然踏上RD的養成日常。
2023/06/07
說到 HTML 元素的換行效果,在前端有滿多種實作方式的最常見的方式是使用 <br /> 這個 HTML 元素來進行換行 ⋯⋯
Thumbnail
2023/06/07
說到 HTML 元素的換行效果,在前端有滿多種實作方式的最常見的方式是使用 <br /> 這個 HTML 元素來進行換行 ⋯⋯
Thumbnail
2022/04/28
在 Modern Web 的世界中,已經有非常多的套件、語法、框架,可以解決大部分網頁排版問題。 以我近期的觀察來說,在專案開發時,大部分公司會為了讓下一個接手、維護的開發者能更快上手專案架構,而採取原生的 CSS 寫法,而不是仰賴快速又方便的套件。
Thumbnail
2022/04/28
在 Modern Web 的世界中,已經有非常多的套件、語法、框架,可以解決大部分網頁排版問題。 以我近期的觀察來說,在專案開發時,大部分公司會為了讓下一個接手、維護的開發者能更快上手專案架構,而採取原生的 CSS 寫法,而不是仰賴快速又方便的套件。
Thumbnail
2022/03/23
相信透過之前的介紹,大家對於 CSS 選擇器(CSS selector)已經不陌生了,今天我們要來聊聊兩個在實務上非常好用的偽類(pseudo class )語法,他們分別是 :nth-child() 與 :nth-of-type(),在了解這兩個語法之前,我們首先要先來聊聊什麼是「偽類」呢?
Thumbnail
2022/03/23
相信透過之前的介紹,大家對於 CSS 選擇器(CSS selector)已經不陌生了,今天我們要來聊聊兩個在實務上非常好用的偽類(pseudo class )語法,他們分別是 :nth-child() 與 :nth-of-type(),在了解這兩個語法之前,我們首先要先來聊聊什麼是「偽類」呢?
Thumbnail
看更多
你可能也想看
Thumbnail
在 vocus 與你一起探索內容、發掘靈感的路上,我們又將啟動新的冒險——vocus App 正式推出! 現在起,你可以在 iOS App Store 下載全新上架的 vocus App。 無論是在通勤路上、日常空檔,或一天結束後的放鬆時刻,都能自在沈浸在內容宇宙中。
Thumbnail
在 vocus 與你一起探索內容、發掘靈感的路上,我們又將啟動新的冒險——vocus App 正式推出! 現在起,你可以在 iOS App Store 下載全新上架的 vocus App。 無論是在通勤路上、日常空檔,或一天結束後的放鬆時刻,都能自在沈浸在內容宇宙中。
Thumbnail
vocus 慶祝推出 App,舉辦 2026 全站慶。推出精選內容與數位商品折扣,訂單免費與紅包抽獎、新註冊會員專屬活動、Boba Boost 贊助抽紅包,以及全站徵文,並邀請你一起來回顧過去的一年, vocus 與創作者共同留下了哪些精彩創作。
Thumbnail
vocus 慶祝推出 App,舉辦 2026 全站慶。推出精選內容與數位商品折扣,訂單免費與紅包抽獎、新註冊會員專屬活動、Boba Boost 贊助抽紅包,以及全站徵文,並邀請你一起來回顧過去的一年, vocus 與創作者共同留下了哪些精彩創作。
Thumbnail
本篇習作內容,除了練習六角預習影音內的常用語法章節外,也額外整理了其它常用於文本的 HTML 元素,希望能透過這樣的整理,在未來設計結構更複雜的網站介面內容時,能扎穩根基。
Thumbnail
本篇習作內容,除了練習六角預習影音內的常用語法章節外,也額外整理了其它常用於文本的 HTML 元素,希望能透過這樣的整理,在未來設計結構更複雜的網站介面內容時,能扎穩根基。
Thumbnail
display 是一種 CSS 屬性,指定「 是否 / 如何 」顯示元素,而每一個 HTML element 都有預設的 display value,然而在預設的情況下,新手如我在剛接觸時常踩入深不見底的盲區, 一起來釐清學會辨識吧!
Thumbnail
display 是一種 CSS 屬性,指定「 是否 / 如何 」顯示元素,而每一個 HTML element 都有預設的 display value,然而在預設的情況下,新手如我在剛接觸時常踩入深不見底的盲區, 一起來釐清學會辨識吧!
Thumbnail
在 Modern Web 的世界中,已經有非常多的套件、語法、框架,可以解決大部分網頁排版問題。 以我近期的觀察來說,在專案開發時,大部分公司會為了讓下一個接手、維護的開發者能更快上手專案架構,而採取原生的 CSS 寫法,而不是仰賴快速又方便的套件。
Thumbnail
在 Modern Web 的世界中,已經有非常多的套件、語法、框架,可以解決大部分網頁排版問題。 以我近期的觀察來說,在專案開發時,大部分公司會為了讓下一個接手、維護的開發者能更快上手專案架構,而採取原生的 CSS 寫法,而不是仰賴快速又方便的套件。
Thumbnail
都市傳說:「網頁跑版時,設定 box-sizing: border-box一切搞定!」
Thumbnail
都市傳說:「網頁跑版時,設定 box-sizing: border-box一切搞定!」
Thumbnail
不論是在基礎或是進階的版面排列,幾乎離開不了 position 系列的 CSS 語法,如果對於這些語法不熟悉,要快速完成畫面需求幾乎是不可能的,甚至會延宕整個團隊的開發速度(對,position 語法就是這麽重要)。
Thumbnail
不論是在基礎或是進階的版面排列,幾乎離開不了 position 系列的 CSS 語法,如果對於這些語法不熟悉,要快速完成畫面需求幾乎是不可能的,甚至會延宕整個團隊的開發速度(對,position 語法就是這麽重要)。
Thumbnail
相信大家在一開始接觸 CSS 時,一定會很疑惑為什麼除了 width 外,還會有 max-width 及 min-width 語法呢? 當要開發響應式網頁時,到底要使用什麼語法來控制「斷點」?
Thumbnail
相信大家在一開始接觸 CSS 時,一定會很疑惑為什麼除了 width 外,還會有 max-width 及 min-width 語法呢? 當要開發響應式網頁時,到底要使用什麼語法來控制「斷點」?
Thumbnail
明明想要某個欄位的寬高為 200px,卻發現自己不知道為什麼怎麼更改都會改不動,又或者寬高更改了,卻沒有辦法與其他元素並列。 上述的狀況,通常都是在不熟悉 HTML display 特性而產生的狀況下才會出現⋯⋯
Thumbnail
明明想要某個欄位的寬高為 200px,卻發現自己不知道為什麼怎麼更改都會改不動,又或者寬高更改了,卻沒有辦法與其他元素並列。 上述的狀況,通常都是在不熟悉 HTML display 特性而產生的狀況下才會出現⋯⋯
Thumbnail
一開始接觸網頁開發的時候,可能會常常在切版時遇到一些奇奇怪怪的問題:版面總是無法貼齊,左右參差不齊;圖片或是版型變形,但都找不到問題,又或者是技術跟不上設計稿,怎麼切怎麼亂。 會有這樣的狀況主要是⋯⋯
Thumbnail
一開始接觸網頁開發的時候,可能會常常在切版時遇到一些奇奇怪怪的問題:版面總是無法貼齊,左右參差不齊;圖片或是版型變形,但都找不到問題,又或者是技術跟不上設計稿,怎麼切怎麼亂。 會有這樣的狀況主要是⋯⋯
Thumbnail
與HTML不同,CSS是專門修改網頁內容「樣式」的程式語言,也就是說你沒有辦法透過CSS去新增網頁的文字或是圖片等相關的內容,但你可以透過HTML新增網頁內容後,再使用CSS去修改他的樣式,例如⋯⋯
Thumbnail
與HTML不同,CSS是專門修改網頁內容「樣式」的程式語言,也就是說你沒有辦法透過CSS去新增網頁的文字或是圖片等相關的內容,但你可以透過HTML新增網頁內容後,再使用CSS去修改他的樣式,例如⋯⋯
Thumbnail
Flexbox長於小規模佈局,而Grid layout則適於大規模佈局。 Flexbox是單向度的排版,Grid則是包含X軸和Y軸的平面排版方式。 如果你想要簡單輕便的實現單一軸向的自適應式排版,例如導覽列、卡片式排版、相簿等,可以選擇使用Flexbox。如果你想快速實現雙軸平面式,甚至不規則的排版
Thumbnail
Flexbox長於小規模佈局,而Grid layout則適於大規模佈局。 Flexbox是單向度的排版,Grid則是包含X軸和Y軸的平面排版方式。 如果你想要簡單輕便的實現單一軸向的自適應式排版,例如導覽列、卡片式排版、相簿等,可以選擇使用Flexbox。如果你想快速實現雙軸平面式,甚至不規則的排版
追蹤感興趣的內容從 Google News 追蹤更多 vocus 的最新精選內容追蹤 Google News