方格精選

【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
留言分享你的想法!
了解HTML標籤的預設屬性真的很重要! 記不起來的話可以查下面的網站 https://htmlreference.io/
Vivian Yeh-avatar-img
發文者
2021/10/13
哇噻! 這個網站太猛了吧QQ 真的很值得分享出去!!
avatar-img
Vivian Yeh - 跨領域轉職的軟體工程師
450會員
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
創作者營運專員/經理(Operations Specialist/Manager)將負責對平台成長及收入至關重要的 Partnership 夥伴創作者開發及營運。你將發揮對知識與內容變現、影響力變現的精準判斷力,找到你心中的潛力新星或有聲量的中大型創作者加入 vocus。
Thumbnail
創作者營運專員/經理(Operations Specialist/Manager)將負責對平台成長及收入至關重要的 Partnership 夥伴創作者開發及營運。你將發揮對知識與內容變現、影響力變現的精準判斷力,找到你心中的潛力新星或有聲量的中大型創作者加入 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 特性而產生的狀況下才會出現⋯⋯
追蹤感興趣的內容從 Google News 追蹤更多 vocus 的最新精選內容追蹤 Google News