::after 偽元素 (Pseudo‐element) - daniel-qa/Vue GitHub Wiki

::after 偽元素 (Pseudo-element)

使用 ::after 的主要原因就是 「解耦」:將結構 (HTML) 和樣式 (CSS) 徹底分開。

傳統做法:為了顯示一個圖標,你必須在 HTML 中放入一個 < i> 或 < span> 標籤。

::after 做法:你的 HTML 只需要一個 < button> 或 < a>,所有圖標或裝飾性的東西都交由 CSS 處理。

這樣做能讓你的程式碼更容易維護,因為你只需要在 CSS 檔案中調整樣式,而不用擔心改變 HTML 結構。這也是現代網頁開發中非常普遍的設計模式。


  • 範例:有箭頭的連結

這個範例展示如何用 ::after 在連結文字後面「畫」一個小箭頭,而不是使用圖片。

<!DOCTYPE html>
<html lang="zh-Hant">
<head>
    <meta charset="UTF-8">
    <title>::after 偽元素範例</title>
    <style>
        .learn-more-link {
            /* 基礎樣式 */
            color: #007bff;
            text-decoration: none; /* 移除預設底線 */
            font-weight: bold;
        }

        /* 使用 ::after 畫出箭頭 */
        .learn-more-link::after {
            content: ""; /* 必須有 content 屬性,即使是空字串 */
            display: inline-block; /* 讓它可以設定寬高 */
            width: 8px; /* 箭頭寬 */
            height: 8px; /* 箭頭高 */
            border-top: 2px solid #007bff; /* 上邊框 */
            border-right: 2px solid #007bff; /* 右邊框 */
            transform: rotate(45deg); /* 旋轉 45 度變成箭頭 */
            margin-left: 5px; /* 與文字的間距 */
        }
    </style>
</head>
<body>

    <a href="#" class="learn-more-link">
        了解更多
    </a>

</body>
</html>

知識點:::after 偽元素

這個範例的核心是這段 CSS:.learn-more-link::after。

content: ""

用途:這是使用偽元素必備的屬性。content 用來指定偽元素的內容。即使內容是空的,這個屬性也一定要寫,否則偽元素不會被渲染出來。

display: inline-block

用途:將這個偽元素變成一個行內區塊元素。這樣它才能與文字並排顯示,同時又可以設定寬度、高度和邊框等屬性。

width, height, border-top, border-right

用途:這些屬性用來「畫」出箭頭的形狀。透過只設定上邊框和右邊框,我們得到一個 L 形。

transform: rotate(45deg)

用途:將這個 L 形旋轉 45 度。旋轉後,它就會看起來像一個指向右邊的箭頭(>)。

margin-left

用途:在箭頭和「了解更多」文字之間增加一些間隔,讓排版看起來更舒服。

透過 ::after,我們可以在不改變 HTML 結構的前提下,為元素新增額外的視覺效果,非常靈活。

⚠️ **GitHub.com Fallback** ⚠️