CSS 技巧:讓 SVG 圖標像文字一樣自然排版在文字後

更新 發佈閱讀 5 分鐘

問題

在一段文字後面需要接一個 SVG icon,例如「外部連結 icon」或「提示 icon」。

希望達到的效果是:

    • SVG 緊貼在最後一個字後面
    • 文字換行時,icon 跟著最後一個字
    • icon 不會跑到下一行開頭

例如希望呈現:

這是一段很長的文
字 🔗

而不是:

這是一段很長的文

🔗

問題範例

<span class="text">
這是一段很長的文字
<svg class="icon" width="16" height="16">
<circle cx="8" cy="8" r="8" />
</svg>
</span>

有些人會嘗試使用 flexinline-flex

.text {
display: inline-flex;
}

但當文字換行時,icon 可能會被排到 下一行開頭,造成 icon 與文字分離。


為什麼會發生這個問題?

因為 flex 會把內容拆成 flex items

[text node] [svg]

當空間不足時,瀏覽器可能會把 整個 svg item 移到下一行,而不是把它當作文字的一部分。


正確做法

讓 SVG 保持 inline 排版,讓瀏覽器使用 文字流排版(inline formatting context)

.icon {
display: inline;
vertical-align: text-bottom;
margin-left: 0.1em;
}

完整範例:

<span class="text">
這是一段很長很長很長很長很長很長很長的文字
<svg class="icon" width="16" height="16">
<circle cx="8" cy="8" r="8"/>
</svg>
</span>
.icon {
display: inline;
vertical-align: text-bottom;
margin-left: 0.15em;
}

效果:

這是一段很長很長很長很長很長很長
的文字 🔗

SVG 會自然貼在最後一個字後。


為什麼 SVG 可以 display: inline

1. SVG 在 HTML 中預設就是 inline element

在瀏覽器預設樣式中:

svg {
display: inline;
}

所以 SVG 可以直接出現在文字中,例如:

文字 <svg></svg> 文字

瀏覽器會把它當作一個 inline box


2. inline 元素會參與文字排版(inline formatting context)

當元素是 display: inline

  • 會跟文字一起排列
  • 會跟著文字換行
  • 不會強制換行

排版概念其實是:

[][][][svg]

SVG 在排版中就像一個「字元」。


3. SVG 屬於 replaced element

SVG 與 <img> 類似,屬於 replaced element

特性:

  • 內容由外部資源決定
  • 有 intrinsic size
  • 可以像圖片一樣嵌入文字流

例如:

文字 <img src="icon.png">
文字 <svg>...</svg>

這兩種在排版上非常相似。


為什麼 icon 會貼在最後一個字?

在 inline 排版中,瀏覽器會:

  1. 從左到右填滿一行
  2. 空間不足才換行

所以排版順序會是:

文字文字文字[svg]

如果空間足夠:

文字文字文字🔗

如果空間不足:

文字文字文字
🔗

因此 SVG 會自然跟在最後一個字後面。


結論

如果希望 icon 像文字一樣跟著排版不要使用 flex 保持 inline 排版

因為:

  • inline 元素會參與 文字流排版
  • SVG 會被當作 字元盒 (inline box) 處理
  • 因此可以自然貼在最後一個文字後方

讓 SVG 保持 display: inline,它就會像文字一樣參與排版,並自然接在最後一個字後面。

.icon {
display: inline;
}
vocus|新世代的創作平台
vocus|新世代的創作平台
留言
avatar-img
努力成長的前端小宅宅 沙龍
1會員
6內容數
在人生的里程中閃耀。 在故事中分享人生的里程碑,鼓勵進行自我評估。在每一個里程中展現你的光芒。 以分享學習到的知識與大家分享
2026/03/05
承接上一篇內容,那MAC該如何讓android 可以偵錯? 安裝 ADB ADB安裝起手式 : 先確認有安裝 Homebrew 如果還沒安裝,可以到官方網站安裝:https://brew.sh 打開 終端(Terminal) 輸入:brew update brew install and
2026/03/05
承接上一篇內容,那MAC該如何讓android 可以偵錯? 安裝 ADB ADB安裝起手式 : 先確認有安裝 Homebrew 如果還沒安裝,可以到官方網站安裝:https://brew.sh 打開 終端(Terminal) 輸入:brew update brew install and
2026/03/05
想必大家都知道 可以用 “Chrome DevTools” 遠端偵錯 Android 裝置,只要在 Chrome 瀏覽器 “前往chrome://inspect#devices” 並插上 USB 連接裝置就可以了把?! 但真的是這樣嗎? 你想想 MAC 與 android 使用的系統不同 是
2026/03/05
想必大家都知道 可以用 “Chrome DevTools” 遠端偵錯 Android 裝置,只要在 Chrome 瀏覽器 “前往chrome://inspect#devices” 並插上 USB 連接裝置就可以了把?! 但真的是這樣嗎? 你想想 MAC 與 android 使用的系統不同 是
2024/06/27
內容交付網路(CDN)是一種網路架構,旨在提高用戶訪問網站內容的速度和效能。其基本原則是將網站內容分佈在全球的伺服器節點上。當使用者訪問網站時,CDN會根據使用者的地理位置和網路狀況,自動從最近的節點傳送內容,降低數據傳輸。
Thumbnail
2024/06/27
內容交付網路(CDN)是一種網路架構,旨在提高用戶訪問網站內容的速度和效能。其基本原則是將網站內容分佈在全球的伺服器節點上。當使用者訪問網站時,CDN會根據使用者的地理位置和網路狀況,自動從最近的節點傳送內容,降低數據傳輸。
Thumbnail
看更多
你可能也想看
Thumbnail
背景:從冷門配角到市場主線,算力與電力被重新定價   小P從2008進入股市,每一個時期的投資亮點都不同,記得2009蘋果手機剛上市,當時蘋果只要在媒體上提到哪一間供應鏈,隔天股價就有驚人的表現,當時光學鏡頭非常熱門,因為手機第一次搭上鏡頭可以拍照,也造就傳統相機廠的殞落,如今手機已經全面普及,題
Thumbnail
背景:從冷門配角到市場主線,算力與電力被重新定價   小P從2008進入股市,每一個時期的投資亮點都不同,記得2009蘋果手機剛上市,當時蘋果只要在媒體上提到哪一間供應鏈,隔天股價就有驚人的表現,當時光學鏡頭非常熱門,因為手機第一次搭上鏡頭可以拍照,也造就傳統相機廠的殞落,如今手機已經全面普及,題
Thumbnail
這個表格會有以下功能: 基本表格(顯示姓名、年齡、職業) CSS 美化(加上邊框、hover 效果、標題底色) JS 搜尋(可以輸入文字快速篩選) JS 排序(點欄位標題可以排序) HTML <!DOCTYPE html> <html lang="zh-Hant"> <head>
Thumbnail
這個表格會有以下功能: 基本表格(顯示姓名、年齡、職業) CSS 美化(加上邊框、hover 效果、標題底色) JS 搜尋(可以輸入文字快速篩選) JS 排序(點欄位標題可以排序) HTML <!DOCTYPE html> <html lang="zh-Hant"> <head>
Thumbnail
本文分析導演巴里・柯斯基(Barrie Kosky)如何運用極簡的舞臺配置,將布萊希特(Bertolt Brecht)的「疏離效果」轉化為視覺奇觀與黑色幽默,探討《三便士歌劇》在當代劇場中的新詮釋,並藉由舞臺、燈光、服裝、音樂等多方面,分析該作如何在保留批判核心的同時,觸及觀眾的觀看位置與人性幽微。
Thumbnail
本文分析導演巴里・柯斯基(Barrie Kosky)如何運用極簡的舞臺配置,將布萊希特(Bertolt Brecht)的「疏離效果」轉化為視覺奇觀與黑色幽默,探討《三便士歌劇》在當代劇場中的新詮釋,並藉由舞臺、燈光、服裝、音樂等多方面,分析該作如何在保留批判核心的同時,觸及觀眾的觀看位置與人性幽微。
Thumbnail
5 月將於臺北表演藝術中心映演的「2026 北藝嚴選」《海妲・蓋柏樂》,由臺灣劇團「晃晃跨幅町」製作,本文將以從舞台符號、聲音與表演調度切入,討論海妲・蓋柏樂在父權社會結構下的困境,並結合榮格心理學與馮.法蘭茲對「阿尼姆斯」與「永恆少年」原型的分析,理解女人何以走向精神性的操控、毀滅與死亡。
Thumbnail
5 月將於臺北表演藝術中心映演的「2026 北藝嚴選」《海妲・蓋柏樂》,由臺灣劇團「晃晃跨幅町」製作,本文將以從舞台符號、聲音與表演調度切入,討論海妲・蓋柏樂在父權社會結構下的困境,並結合榮格心理學與馮.法蘭茲對「阿尼姆斯」與「永恆少年」原型的分析,理解女人何以走向精神性的操控、毀滅與死亡。
Thumbnail
這是一場修復文化與重建精神的儀式,觀眾不需要完全看懂《遊林驚夢:巧遇Hagay》,但你能感受心與土地團聚的渴望,也不急著在此處釐清或定義什麼,但你的在場感受,就是一條線索,關於如何找著自己的路徑、自己的聲音。
Thumbnail
這是一場修復文化與重建精神的儀式,觀眾不需要完全看懂《遊林驚夢:巧遇Hagay》,但你能感受心與土地團聚的渴望,也不急著在此處釐清或定義什麼,但你的在場感受,就是一條線索,關於如何找著自己的路徑、自己的聲音。
Thumbnail
作為 2024 年 5 月的最後一週,主題取名為「Filter fest!」。 也就是說這個 Pen 至少要使用到兩種以上的 "filter" 就對了。前幾週的挑戰練習了前端不同的 filter,例如:CSS filter、SVG filter、Javascript filter。
Thumbnail
作為 2024 年 5 月的最後一週,主題取名為「Filter fest!」。 也就是說這個 Pen 至少要使用到兩種以上的 "filter" 就對了。前幾週的挑戰練習了前端不同的 filter,例如:CSS filter、SVG filter、Javascript filter。
Thumbnail
老師請問tailwind是什麼呢? Tailwind 是一個現代化的 CSS 框架,它的設計理念是「高度可定制的實用型 CSS 庫」。與其他 CSS 框架不同的是,Tailwind 不是基於預先定義好的樣式類別和樣式集合,而是提供了大量的 CSS 實用類別,讓開發者可以更靈活地自由組合和應用。
Thumbnail
老師請問tailwind是什麼呢? Tailwind 是一個現代化的 CSS 框架,它的設計理念是「高度可定制的實用型 CSS 庫」。與其他 CSS 框架不同的是,Tailwind 不是基於預先定義好的樣式類別和樣式集合,而是提供了大量的 CSS 實用類別,讓開發者可以更靈活地自由組合和應用。
追蹤感興趣的內容從 Google News 追蹤更多 vocus 的最新精選內容追蹤 Google News