使用CSS創建帶三角形指示器的氣泡框

在網頁設計中,氣泡框(或工具提示)是一種常見的UI元素,用于突出顯示信息或提供額外說明。本文將介紹如何使用純CSS創建一個簡單的氣泡框,并添加一個三角形指示器。
在這里插入圖片描述

HTML結構

首先,我們有一個簡單的HTML結構:

<div class="border">我是一個氣泡框
</div>

CSS樣式

讓我們逐步分析CSS實現:

1. 基礎容器樣式

.border{position: relative;background: gray;width: 200px;margin: 200px auto;height: 100px;border-radius: 20px;padding: 20px;box-sizing: border-box;
}
  • position: relative:為偽元素定位提供參考
  • background: gray:設置背景顏色
  • 定義固定寬度和高度
  • border-radius: 20px:創建圓角效果
  • padding: 20px:內邊距確保內容不緊貼邊緣
  • box-sizing: border-box:使寬度和高度包含padding和border

2. 三角形指示器實現

我們使用::after偽元素創建三角形指示器:

.border::after{content: '';position: absolute;width: 0px;height: 0px;bottom: -19px;left: 50%;translate: -50%;border:1px solid;border-width: 0px 0px 20px 20px;border-color: transparent transparent transparent gray;
}

關鍵點解析:

  1. CSS三角形技巧:通過設置邊框寬度為0,然后只顯示一個或兩個邊框,利用邊框相交處的斜角效果創建三角形。

  2. 定位

    • bottom: -19px:將三角形定位在容器下方
    • left: 50% + translate: -50%:水平居中
  3. 邊框設置

    • border-width: 0px 0px 20px 20px:只顯示左下邊框
    • border-color: transparent transparent transparent gray:只讓左邊框顯示顏色(灰色)

效果說明

這個實現創建了一個灰色的圓角矩形氣泡框,底部中央有一個指向下方的三角形指示器。三角形是通過邊框技巧實現的,這是一種常見且高效的CSS技術,避免了使用額外圖片。

可能的改進

  1. 響應式設計:可以使用相對單位(如emrem)代替固定像素值
  2. 顏色變量:使用CSS變量便于主題更改
  3. 動畫效果:添加淡入淡出或滑動動畫
  4. 方向可變:通過添加類名控制三角形出現在不同位置(上、下、左、右)

完整代碼

<!DOCTYPE html>
<html lang="zh-CN">
<head><meta charset="UTF-8"><meta name="viewport" content="width=device-width, initial-scale=1.0"><title>CSS氣泡框示例</title><style>.body{width: 100vh;height: 100vh;}.border{position: relative;background: gray;width: 200px;margin: 200px auto;height: 100px;border-radius: 20px;padding: 20px;box-sizing: border-box;}.border::after{content: '';position: absolute;width: 0px;height: 0px;bottom: -19px;left: 50%;translate: -50%;border:1px solid;border-width: 0px 0px 20px 20px;border-color: transparent transparent transparent gray;}</style>
</head>
<body><div class="border">我是一個氣泡框</div>
</body>
</html>

這種純CSS實現的氣泡框輕量、靈活,是現代網頁設計中常用的技術。通過理解其原理,可以輕松創建各種變體和自定義樣式。

本文來自互聯網用戶投稿,該文觀點僅代表作者本人,不代表本站立場。本站僅提供信息存儲空間服務,不擁有所有權,不承擔相關法律責任。
如若轉載,請注明出處:http://www.pswp.cn/bicheng/86879.shtml
繁體地址,請注明出處:http://hk.pswp.cn/bicheng/86879.shtml
英文地址,請注明出處:http://en.pswp.cn/bicheng/86879.shtml

如若內容造成侵權/違法違規/事實不符,請聯系多彩編程網進行投訴反饋email:809451989@qq.com,一經查實,立即刪除!

相關文章

Java面試題031:一文深入了解MySQL(3)

Java面試題029&#xff1a;一文深入了解MySQL&#xff08;1&#xff09; Java面試題030&#xff1a;一文深入了解MySQL&#xff08;2&#xff09; 1、MySQL多表查詢 &#xff08;1&#xff09;內連接 inner join 返回兩個表中完全匹配的行&#xff0c;即只保留兩個表連接字段值…

springboot小區物業管理系統

目 錄 第一章 緒 論 1.1背景及意義 1 1.2國內外研究概況 2 1.3 研究的內容 2 第二章 關鍵技術的研究 2.1 相關技術 3 2.2 Java技術 3 2.3 MySQL數據庫 4 2.4 Tomcat介紹 4 2.5 Spring Boot框架 5 第三章 系統分析 3.1 系統設計目標 6 3.2 系統可行性分析 6 3.3 系統功能分析…

微信小程序云開發--環境共享

1、創建配置文件 // utils/cloudConfig.js // 云開發環境配置// 當前小程序配置 const currentConfig {env: "cloudbase-6goxxxxxxd6c75e0", // 當前小程序環境 IDappid: "wxdexxxxx5dbcf04", // 當前小程序 AppID };// 共享云開發環境配置 const shared…

SpringBoot+ShardingSphere-分庫分表教程(一)

日常使用數據庫的時候&#xff0c;更多的時間是在關心業務功能的實現&#xff0c;為了盡快完成新版本的發布上線&#xff0c;通常在項目初期不太會去在意數據庫的壓力和性能問題。在服務上線一段時間之后&#xff0c;就會發現當初設計存在著很多的不足&#xff0c;這都是項目研…

INA226 電流計 功率計電路圖轉PCB制作

上次發布了TI的INA226電路圖&#xff0c;今天抽了點時間&#xff0c;把電路圖生成了PCB。 帖出來&#xff0c;不足之處&#xff0c;請兄弟們留言指正。 沒什么問題就可以去嘉立創白嫖了。^_^

Vcpkg 經典模式完整遷移方案

&#x1f680; 從零開始&#xff1a;高效使用 Vcpkg 安裝 Qt WebEngine&#xff08;經典模式 緩存優化 性能釋放&#xff09; &#x1f9e9; 背景簡介 在使用 Vcpkg 安裝 Qt 系列庫時&#xff0c;特別是龐大的 qtwebengine 模塊&#xff0c;編譯量極大&#xff0c;耗時可達…

FPGA產品

FPGA產品 文章目錄 FPGA產品1. Xilinx公司FPGA產品2. Altera公司FPGA產品3. FPGA產品的工業等級簡介4. FPGA產品的速度等級簡介總結 1. Xilinx公司FPGA產品 Xilinx公司是FPGA芯片的發明者&#xff0c;因此是一家骨灰級的老牌FPGA公司&#xff0c;同時也是目前最大的可編程邏輯…

205-06-26 Python深度學習1——安裝Anaconda與PyTorch庫(Win11+WSL2+Ubuntu24.04版)

文章目錄 1 安裝 wsl1.1 開啟 Windows 支持1.2 安裝 wsl1.3 移動 wsl 至其他盤1.4 其他事項 2 安裝 Anaconda3 安裝 Python 環境3.1 創建 Conda 環境3.2 安裝 Pytorch 庫&#xff08;gpu&#xff09; 4 安裝 Pycharm4.1 Toolbox App 安裝4.2 安裝 Pycharm4.3 配置 Pycharm 5 測…

Redis 數據遷移同步:應對大 Key 同步挑戰

在企業級的數據同步和遷移場景中&#xff0c;Redis 憑借高性能和靈活的數據結構&#xff0c;常被用于緩存和高頻讀寫場景。隨著業務數據的積累&#xff0c;Redis 中不可避免會出現包含大量元素的“大 Key”&#xff0c;如包含幾十萬條數據的 List、Set 或 Hash 類型。在進行全量…

視頻關鍵幀提取

&#x1f39e;? 視頻關鍵幀提取與特征分析指南 &#x1f4cc; 抽幀數量建議 視頻時長推薦抽幀數原因短視頻&#xff08;≤15秒&#xff09;3&#xff5e;5 幀覆蓋不同場景即可中長視頻&#xff08;1&#xff5e;3分鐘&#xff09;5&#xff5e;10 幀內容跨度大長視頻&#xf…

協作機器人優化自動化工作流程,提升工作效率

無損檢測(NDT)是一種檢查方法&#xff0c;用于識別材料中的裂紋或缺陷&#xff0c;或者在不損壞材料的情況下確定材料的元素組成。Olympus擁有多種NDT設備&#xff0c;這些設備具有多種多樣的測量功能&#xff0c;允許最終用戶對各種行業中使用的金屬、塑料、陶瓷和復合材料進行…

復用對象Aspose.Words 中 DocumentBuilder 的狀態管理解析

doc manager.LoadDocument(filePath) builder.Document doc 是不是builder就自動清空重建了,不需要清理builder Aspose.Words 中 DocumentBuilder 的狀態管理解析 在您的代碼中&#xff0c;builder.Document doc 這行代碼不會自動清空或重建DocumentBuilder的狀態。Docume…

(LeetCode 面試經典 150 題 ) 134. 加油站 (貪心)

題目&#xff1a;134. 加油站 思路&#xff1a;貪心&#xff0c;時間復雜度0(n)。 當前點i來到下一個點i1,那么油的變化量是gas[i]-cost[i]。 先統計遍歷完所有點后&#xff0c;油的變化量sum。如果sum<0&#xff0c;說明不可能繞行一周&#xff1b;sum>0&#xff0c;說…

Java 線程池總結

一、寫在前面 參考阿里開發規約,創建線程池一般用ThreadPoolExecutor 在高并發程序中&#xff0c;頻繁創建與銷毀線程是一種極其低效且不可控的行為。為了解決這個問題&#xff0c;Java 提供了線程池&#xff08;ThreadPoolExecutor&#xff09;這一強大的并發框架。它不僅提…

【3.3】Pod詳解——容器探針部署第一個pod

文章目錄 容器探針小知識-控制平面Pod實戰聲明式模型&命令模式 部署第一個pod編寫pod清單文件kubectl命令將清單文件post到api-server驗證pod刪除pod 容器探針 上面已經講到容器狀態,那么這些容器的狀態是怎么檢測到的呢?實際上在pod中有三種探針&#xff0c;存活探針(li…

Insar 相位展開真實的數據集的生成與下載(隨機矩陣放大,zernike 仿真包裹相位)

1.真實的數據集下載: Delta-X: UAVSAR L1B Interferometric Products, MRD, Louisiana, 2021 | NASA Earthdata 注意下載的時候需要注冊登錄一下哦 2. 適用于 深度學習訓練的數據集 通過網盤分享的文件:InSAR-DLPU.rar 鏈接: https://pan.baidu.com/s/1CRWAuNYwCHP_iqCeIhf…

C++ 多線程深度解析:掌握并行編程的藝術與實踐

在現代軟件開發中&#xff0c;多線程&#xff08;multithreading&#xff09;已不再是可選項&#xff0c;而是提升應用程序性能、響應速度和資源利用率的核心技術。隨著多核處理器的普及&#xff0c;如何讓代碼有效地利用這些硬件資源&#xff0c;成為每個 C 開發者必須掌握的技…

(線性代數)矩陣的奇異值Singular Value

矩陣的奇異值是矩陣分析中一個非常重要的概念&#xff0c;尤其是在數值線性代數、數據降維&#xff08;如PCA&#xff09;、圖像處理等領域有著廣泛應用。奇異值分解&#xff08;SVD, Singular Value Decomposition&#xff09;是一種強大的工具&#xff0c;可以將任意形狀的矩…

數據結構復習4

第四章 串 一些面試題 12. 介紹一下KMP算法。★★★ KMP算法是一種高效的字符串匹配算法&#xff0c;用于在一個文本串中查找一個模式串的出現位置。KMP算法通過利用模式串自身的信息&#xff0c;在匹配過程中避免不必要的回溯&#xff0c;從而提高匹配效率。 KMP算法的核心思…

【八股消消樂】消息隊列優化—消息有序

&#x1f60a;你好&#xff0c;我是小航&#xff0c;一個正在變禿、變強的文藝傾年。 &#x1f514;本專欄《八股消消樂》旨在記錄個人所背的八股文&#xff0c;包括Java/Go開發、Vue開發、系統架構、大模型開發、具身智能、機器學習、深度學習、力扣算法等相關知識點&#xff…