CSS 對話框是一種裝飾性容器,形狀類似漫畫中的對話氣球,完全使用 CSS 偽元素和透明邊框來製作。您不需要切割圖片或撰寫 JavaScript,而是使用 ::before 或 ::after 偽元素,透過單一 CSS 規則繪製三角形「尾巴」和圓角矩形「氣泡」。這個技巧的原理在於:一個零寬度、零高度的元素,在三個邊使用粗的透明邊框,在第四個邊使用有色邊框,就能形成完美的三角形。將這個三角形定位在圓角矩形旁邊,就能組成完整的對話框,隨文字縮放、適用於任何背景,且保持輕量。

情境很重要:設計師會將對話框用於工具提示、聊天介面、漫畫風格插圖和互動式提示。如果沒有視覺化產生器,您必須手動計算邊框寬度、偏移量和圓角半徑,然後在程式碼編輯器中反覆調整每個值並重新整理瀏覽器。CSS 對話框產生器消除了這種反覆嘗試的循環。它提供即時預覽,您可以在其中選擇氣泡和文字顏色、設定圓角半徑和尾巴大小、從四種尾巴方向(上、右、下、左)中選擇一種,並立即看到結果。滿意後,您複製完整的偽元素規則並貼到樣式表中——不需要圖片、不需要 JavaScript,也沒有外部相依性。

how to make speech bubble css
how to make speech bubble css

為什麼 CSS 對話框不需要圖片也能運作

CSS 對話框依賴邊框技巧:一個零寬度、零高度的元素,在三個邊使用粗的透明邊框,在第四個邊使用有色邊框,就能形成三角形。例如,左、右、下三邊各設 20 像素的透明邊框,上邊設 20 像素的藍色實心邊框,就會形成一個朝下的藍色三角形。將這個三角形定位在圓角矩形(氣泡主體)旁邊,就能組成完整的對話框。這個技術與解析度無關,可隨文字縮放,並適應任何背景顏色而不會產生鋸齒瑕疵。

瀏覽器支援是全面的:邊框技巧在所有現代瀏覽器中都能運作,包括 IE9 及以上版本。由於它只使用 CSS2 屬性(border、position、偽元素),您可以避免使用較新的 CSS 功能(如 clip-path 或 SVG 濾鏡)時可能產生的相容性問題。CSS 對話框產生器輸出的宣告是確定性的、基於標準的,能在所有支援的瀏覽器中運作,無需廠商前綴或後備方案。

如何使用產生器建立 CSS 對話框

  1. 在瀏覽器中開啟 CSS 對話框產生器。工具載入時會使用預設值:白色氣泡、黑色文字、8 像素圓角半徑、12 像素尾巴大小,以及底部尾巴。

  2. 選擇氣泡和文字顏色。點擊顏色選擇器以開啟調色盤,或貼上十六進位、RGB 或 HSL 值。預覽會即時更新。

  3. 設定圓角半徑。使用滑桿或輸入像素值(0–50)來控制氣泡圓角的圓滑程度。半徑為 0 時為尖角;50 時為膠囊形狀。

  4. 調整尾巴大小。滑桿或輸入欄位以像素設定尾巴的底邊寬度(4–30)。數值越大,三角形越明顯。

  5. 選擇尾巴方向。點擊四個方向按鈕(上、右、下、左)之一來定位尾巴。預覽會立即更新。

  6. 檢查預覽。工具會以您選擇的顏色、半徑、尾巴大小和方向即時渲染對話框。將滑鼠懸停在氣泡上以確認尾巴位置。

  7. 複製 CSS。點擊「Copy CSS」按鈕將完整的偽元素規則複製到剪貼簿。規則包含氣泡主體和尾巴,所有數值都已驗證。

  8. 貼到您的樣式表中。開啟 CSS 檔案並貼上複製的規則。將類別指派給 HTML 元素(例如 <div class="speech-bubble">Hello!</div>)。

  9. 加入內容、佈局和語意。使用語意標籤包裹文字(例如 <p>),設定響應式間距(padding、margin),並確保文字對比符合 WCAG 2.2 AA(一般文字最低 4.5:1)。

尾巴方向與定位情境

尾巴方向決定對話框指向的位置。CSS 對話框產生器支援四種方向,各適用於不同的佈局需求。下表比較每種方向的使用案例和定位需求。

尾巴方向 典型使用案例 定位需求
底部 聊天訊息、按鈕下方的工具提示、漫畫風格對話 將氣泡放在目標元素上方;確保尾巴與目標的水平中心對齊。
頂部 表單欄位上方的工具提示、註解、朝上的提示 將氣泡放在目標元素下方;將尾巴與目標的水平中心對齊。
右側 側邊註解、標註、右對齊對話 將氣泡放在目標元素左側;將尾巴與目標的垂直中心對齊。
左側 左對齊對話、側邊註記、左側標註 將氣泡放在目標元素右側;將尾巴與目標的垂直中心對齊。

正確定位氣泡可確保尾巴在視覺上連接到目標元素。在 CSS 中使用相對和絕對定位:將氣泡和目標包裝在具有 position: relative 的容器中,然後使用 position: absolute 和偏移量(例如底部尾巴使用 bottom: 100%)來定位氣泡。產生器的 CSS 規則包含必要的定位屬性,但您必須調整偏移量以符合您的佈局。

無障礙與響應式考量

對話框必須符合無障礙標準,以確保所有使用者都能閱讀並與內容互動。CSS 對話框產生器會驗證顏色對比:它會根據 WCAG 2.2 AA 檢查氣泡和文字顏色,如果比例低於一般文字的 4.5:1 或大型文字的 3:1 就會發出警告。不過,您必須在特定情境中驗證最終對比,因為背景顏色和不透明度可能會影響比例。

語意 HTML 確保螢幕閱讀器正確解讀氣泡。使用語意標籤包裹文字(例如 <p><span>),如果氣泡傳達互動意義,請使用 ARIA 屬性(例如 role="tooltip")。避免將氣泡用於在懸停或聚焦時消失的重要資訊;如有需要,請提供永久性的替代方案。

響應式間距可確保氣泡在不同螢幕尺寸上都能正常運作。使用相對單位(em、rem)來設定 padding 和 margin,使其隨文字大小縮放。在行動裝置上測試氣泡:小螢幕可能需要更大的觸控目標,因此增加 padding 或縮小尾巴大小以避免重疊。產生器以像素為基礎的尾巴大小和半徑在複製的 CSS 中會轉換為 rem 單位,使其預設為響應式。

與其他 CSS 形狀產生器的比較

CSS 對話框產生器是可用的視覺化 CSS 產生器之一。每個工具都有特定用途,選擇哪一個取決於您的設計需求。下表比較本站的對話框產生器與其他相關工具。

工具 主要使用案例 主要功能 輸出格式
CSS 對話框產生器 對話框、工具提示、漫畫風格對話 尾巴大小、方向、圓角半徑、顏色驗證 單一偽元素 CSS 規則
CSS Clip Path 產生器 自訂多邊形形狀、遮罩 百分比多邊形點、預設值、驗證 clip-path CSS 宣告
CSS 玻璃擬態產生器 玻璃質感面板、毛玻璃背景 模糊、透明度、邊框、半徑、對比驗證 多個 CSS 宣告
CSS 圓角邊框產生器 圓角、膠囊形狀 四個獨立圓角半徑、最短宣告 border-radius CSS 簡寫
CSS 盒陰影產生器 投影、深度效果 偏移、模糊、擴散、顏色、驗證 box-shadow CSS 宣告

雖然 clip-path 產生器可以建立任意形狀,但它缺乏對話框的語意清晰度。玻璃擬態產生器著重於透明度和模糊效果,這通常不是對話框所需要的。圓角邊框產生器對圓角很有用,但不包括尾巴。盒陰影產生器增加深度,但不會塑造容器形狀。CSS 對話框產生器是唯一將圓角矩形與方向性三角形結合在單一、已驗證的 CSS 規則中的工具。

常見問題疑難排解

對話框可能因佈局衝突、屬性缺失或瀏覽器怪癖而無法如預期渲染。最常見的問題是尾巴未與目標元素對齊。這發生在氣泡的定位上下文不正確時:請確保父容器具有 position: relative,而氣泡具有 position: absolute 和適當的偏移量(例如底部尾巴使用 bottom: 100%)。

另一個問題是尾巴看起來與氣泡分離。這發生在尾巴大小或位置數值計算錯誤時。CSS 對話框產生器透過驗證所有數值並產生確定性的偏移量來防止這種情況。如果您手動編輯 CSS,請確保尾巴的邊框寬度與產生器的輸出相符,並相應地重新計算偏移量。

氣泡與文字之間的低對比會使內容難以閱讀。如果對比比例低於 WCAG 2.2 AA,產生器會發出警告,但您必須在特定情境中驗證最終對比。使用 WebAIM Contrast Checker 來測試產生器未涵蓋的組合。

最後,對話框可能會在小螢幕上與其他元素重疊。使用媒體查詢來調整行動裝置的 padding、margin 或尾巴大小。在觸控裝置上測試氣泡:確保觸控目標至少為 48x48 像素,這是 WCAG 2.2 建議的大小。

更多相關主題:使用免費 Clip Path 產生器設計自訂 CSS 形狀

如需更深入的探討,請參閱 將 CSV 轉換為 JSON 而不遺失引號內的逗號或換行符