許多網頁會為了引導使用者,在視窗邊緣放置固定的聯絡入口。圓形圖示佔空間小,但資訊傳達力不足;長條按鈕則是資訊充足卻容易遮擋內容。透過 CSS 特效讓圖示在滑鼠移入(Hover)時才從圓形平滑展開成藥丸形狀並顯示文字,是兼顧美感與功能性的一種優雅解決方案。
內容導覽
寬度過渡與內容裁切原理
這個特效的核心在於控制容器的寬度(width)變化。我們將容器設定為固定高度,並使用 border-radius: 50%(或高度的一半)來維持圓角外觀。當滑鼠移入時,觸發寬度增加的動畫,同時讓原本隱藏的文字浮現。
關鍵屬性是 overflow: hidden,它確保在寬度尚未展開時,內部的長文字不會溢出顯示,從而達到完美的隱藏效果。
實作程式碼
<!DOCTYPE html>
<html lang="zh-TW">
<head>
<meta charset="UTF-8">
<meta name="viewport" content="width=device-width, initial-scale=1.0">
<title>Facebook Icon Hover Effect - Right Fixed</title>
<style>
body {
margin: 0;
padding: 50px;
background-color: #f0f0f0;
font-family: Arial, sans-serif;
}
.facebook-icon {
position: fixed;
right: 30px;
top: 50%;
transform: translateY(-50%);
display: flex;
align-items: center;
justify-content: flex-end;
width: 50px;
height: 50px;
background: linear-gradient(135deg, #8B5CF6, #A855F7);
border-radius: 25px;
cursor: pointer;
transition: all 0.4s ease;
overflow: hidden;
box-shadow: 0 4px 15px rgba(139, 92, 246, 0.3);
z-index: 999;
}
.facebook-icon:hover {
width: 160px;
border-radius: 25px;
}
.icon-text {
position: absolute;
left: 15px;
color: white;
font-size: 14px;
font-weight: 600;
opacity: 0;
transform: translateX(-10px);
transition: all 0.4s ease;
white-space: nowrap;
}
.facebook-icon:hover .icon-text {
opacity: 1;
transform: translateX(0);
}
.facebook-f {
position: absolute;
right: 15px;
color: white;
font-size: 20px;
font-weight: bold;
transition: all 0.4s ease;
}
/* 內容區域示範樣式 */
.container {
max-width: 800px;
margin: 0 auto;
padding: 20px;
}
.demo-title {
font-size: 24px;
color: #333;
margin-bottom: 20px;
}
.content {
background: white;
padding: 30px;
border-radius: 10px;
box-shadow: 0 2px 10px rgba(0,0,0,0.1);
margin-bottom: 30px;
}
</style>
</head>
<body>
<!-- 固定在右邊的 Facebook 圖示 -->
<div class="facebook-icon" id="facebookIcon">
<span class="icon-text">追蹤我們的 Facebook</span>
<span class="facebook-f">f</span>
</div>
<div class="container">
<h1 class="demo-title">Facebook Icon Hover Effect - 固定右邊實作</h1>
<div class="content">
<p>請將滑鼠移動到畫面右側的圓形圖示上觀察展開效果。</p>
</div>
</div>
</body>
</html>開發實作重點
- 防止文字換行:內部的
.icon-text必須設定white-space: nowrap。如果不設定,在寬度動畫增加的過程中,文字會因為寬度不足而被迫換行,造成嚴重的視覺抖動。 - 定位策略:為了讓圖示在展開時看起來是「向左延伸」,外層容器建議固定在右側(right),並對內部圖示與文字使用
position: absolute分別固定在左右兩端,這樣展開時位置才不會跑掉。 - 動態層級:由於使用了
,務必檢查z-index的設定,確保按鈕不會被頁面上的其他元件(如全螢幕選單或彈窗)遮擋。 - 行動裝置適應:手機觸控並沒有 Hover 狀態。在實務上,通常會透過媒體查詢(Media Queries)在行動版將寬度固定,或者讓它保持圓形圖示即可,避免點擊時產生無法預期的過渡效果。
看不懂沒關係,照做就能用
以上的原理看不懂沒關係,只要照著下面的步驟操作就能直接套用:
操作步驟
- 開啟您的 WordPress 頁面編輯器(如 Elementor)
- 在頁面中新增一個「HTML」小工具(Widget)
- 將上方範例中的完整程式碼(包含 <style> 標籤與 <body> 內的 <div> 結構)複製並貼入小工具中
- 如果您希望全站都出現此圖示,建議安裝 FluentSnippets 插件,新增一個片段並將執行位置設定為「Site Wide Footer」
- 點擊儲存並發佈頁面
- 清除網站快取,回到前台查看畫面右側是否有出現圓形圖示
本程式碼已預設好相關樣式,您不需要手動到進階設定填寫 Class,但請確保貼入的 HTML 包含以下結構:
- .facebook-icon:這是主要的外框容器
- .icon-text:這是滑鼠移入時會顯示的「追蹤我們的 Facebook」文字
- .facebook-f:這是固定顯示在右側的「f」圖示文字
如果啟用後網站出現異常,回到 Snippets 將該片段停用即可立刻復原,不會影響其他設定。



