HTML 文本省略號

目錄

  • HTML 文本省略號
    • 超行省略號如何實現
      • 1. 單行文本溢出顯示省略號
      • 2. 多行文本溢出顯示省略號
        • 方法一:使用 -webkit-line-clamp(推薦)
        • 方法二:使用偽元素(兼容性好)
        • 方法三:使用 JavaScript 動態監測
      • 3. 響應式文本省略
      • 4. 自定義省略號樣式
      • 5. 表格單元格文本省略
      • 6. 注意事項
      • 7. 常見問題解決
      • 8. 最佳實踐


HTML 文本省略號

超行省略號如何實現

標準答案

1. 單行文本溢出顯示省略號

.ellipsis-single {white-space: nowrap; /* 文本不換行 */overflow: hidden; /* 溢出隱藏 */text-overflow: ellipsis; /* 顯示省略號 */width: 200px; /* 必須設置寬度 */
}

2. 多行文本溢出顯示省略號

方法一:使用 -webkit-line-clamp(推薦)
.ellipsis-multi {display: -webkit-box;-webkit-box-orient: vertical;-webkit-line-clamp: 3; /* 顯示行數 */overflow: hidden;text-overflow: ellipsis;width: 200px; /* 必須設置寬度 */
}
方法二:使用偽元素(兼容性好)
.ellipsis-multi-compatible {position: relative;height: 4.5em; /* 行高 × 行數 */line-height: 1.5em;overflow: hidden;
}.ellipsis-multi-compatible::after {content: '...';position: absolute;bottom: 0;right: 0;padding-left: 40px;background: linear-gradient(to right, transparent, #fff 55%);
}
方法三:使用 JavaScript 動態監測
function truncateText(element, maxLines) {const lineHeight = parseInt(window.getComputedStyle(element).lineHeight)const maxHeight = lineHeight * maxLineswhile (element.scrollHeight > maxHeight) {element.textContent = element.textContent.slice(0, -1)}element.textContent += '...'
}

3. 響應式文本省略

.responsive-ellipsis {width: 100%;max-width: 300px;white-space: nowrap;overflow: hidden;text-overflow: ellipsis;
}@media (max-width: 768px) {.responsive-ellipsis {max-width: 200px;}
}

4. 自定義省略號樣式

.custom-ellipsis {position: relative;overflow: hidden;text-overflow: ellipsis;white-space: nowrap;
}.custom-ellipsis::after {content: '...';position: absolute;right: 0;bottom: 0;color: #ff0000; /* 自定義省略號顏色 */font-weight: bold; /* 自定義省略號樣式 */
}

5. 表格單元格文本省略

.table-cell-ellipsis {max-width: 200px;white-space: nowrap;overflow: hidden;text-overflow: ellipsis;
}

6. 注意事項

  1. 寬度設置

    • 必須設置容器寬度
    • 可以使用固定寬度或百分比
    • 考慮響應式布局需求
  2. 兼容性處理

    • -webkit-line-clamp 需要添加瀏覽器前綴
    • 考慮降級方案
    • 使用 JavaScript 方案作為備選
  3. 性能優化

    • 避免頻繁的 DOM 操作
    • 使用 CSS 方案優先
    • JavaScript 方案考慮防抖處理
  4. 特殊場景

    • 動態內容更新
    • 多語言支持
    • 不同字體大小適配

7. 常見問題解決

  1. 省略號不顯示

    • 檢查容器寬度是否設置
    • 確認文本是否超出容器
    • 驗證 CSS 屬性是否正確
  2. 多行省略不生效

    • 檢查 -webkit-line-clamp 兼容性
    • 確認父元素高度設置
    • 驗證文本內容是否足夠長
  3. 響應式適配問題

    • 使用相對單位
    • 添加媒體查詢
    • 考慮容器自適應

8. 最佳實踐

  1. CSS 方案優先

    • 優先使用 CSS 實現
    • 代碼簡潔,性能好
    • 維護成本低
  2. 降級處理

    • 提供合適的降級方案
    • 保證基本功能可用
    • 考慮用戶體驗
  3. 響應式設計

    • 適配不同屏幕尺寸
    • 考慮不同設備特性
    • 保持布局穩定性
  4. 性能考慮

    • 避免不必要的計算
    • 合理使用緩存
    • 優化重繪和回流

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

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

相關文章

Spring Boot 實現流式響應(兼容 2.7.x)

在實際開發中,我們可能會遇到一些流式數據處理的場景,比如接收來自上游接口的 Server-Sent Events(SSE) 或 流式 JSON 內容,并將其原樣中轉給前端頁面或客戶端。這種情況下,傳統的 RestTemplate 緩存機制會…

ffmpeg 新版本轉碼設置幀率上限

ffmpeg 新版本轉碼設置幀率上限 ffmpeg 在老版本比如 4.3的時候,轉碼設置幀率上限是通過vsync控制 # 設置動態控制最大幀率60 "-vsync 2 -r 60" 新版本這個參數沒辦法動態判斷控制幀率了 替換為使用filter中的fps進行設置 # 設置動態幀率最大60幀 -…

Qt繪制電池圖標源碼分享

一、效果展示 二、源碼分享 cell.h #ifndef CELL_WIDGET_H #define CELL_WIDGET_H #include <QWidget> #include <QPainter> #include <QPaintEngine> #include <QPaintEvent>/* 電池控件類 */ class CellWidget : public QWidget {Q_OBJECTQ_PROPERTY…

安卓基礎(生成APK)

??生成調試版&#xff08;Debug&#xff09;?? Build → Build Bundle(s)/APK(s) → Build APK輸出路徑&#xff1a;app/build/outputs/apk/debug/app-debug.apk ??生成發布版&#xff08;Release&#xff09;?? Build → Generate Signed Bundle/APK → 選擇 ??APK?…

如何在 TypeScript 中使用類型保護

前言 類型保護是一種 TypeScript 技術&#xff0c;用于獲取變量類型的信息&#xff0c;通常用于條件塊中。類型保護是返回布爾值的常規函數??&#xff0c;它接受一個類型并告知 TypeScript 是否可以將其縮小到更具體的值。類型保護具有獨特的屬性&#xff0c;可以根據返回的…

山東大學軟件學院項目實訓-基于大模型的模擬面試系統-面試對話標題自動總結

面試對話標題自動總結 主要實現思路&#xff1a;每當AI回復用戶之后&#xff0c;調用方法查看當前對話是否大于三條&#xff0c;如果大于則將用戶的兩條和AI回復的一條對話傳給DeepSeek讓其進行總結&#xff08;后端&#xff09;&#xff0c;總結后調用updateChatTopic進行更新…

Spring Cloud與Alibaba微服務架構全解析

Spring Cloud與Spring Cloud Alibaba微服務架構解析 1. Spring Boot概念 Spring Boot并不是新技術&#xff0c;而是基于Spring框架下“約定優于配置”理念的產物。它幫助開發者更容易、更快速地創建獨立運行和產品級別的基于Spring框架的應用。Spring Boot中并沒有引入新技術…

AI 賦能 Java 開發:從通宵達旦到高效交付的蛻變之路

作為一名深耕 Java 開發領域多年的從業者&#xff0c;相信很多同行都與我有過相似的經歷&#xff1a;在 “996” 甚至 “007” 的高壓模式下&#xff0c;被反復修改的需求、復雜的架構設計、無休止的代碼編寫&#xff0c;以及部署時層出不窮的問題折磨得疲憊不堪。長期以來&…

06. C#入門系列【自定義類型】:從青銅到王者的進階之路

C#入門系列【自定義類型】&#xff1a;從青銅到王者的進階之路 一、引言&#xff1a;為什么需要自定義類型&#xff1f; 在C#的世界里&#xff0c;系統自帶的類型&#xff08;如int、string、bool&#xff09;就像是基礎武器&#xff0c;能解決一些簡單問題。但當你面對復雜的…

使用 PyTorch 和 TensorBoard 實時可視化模型訓練

在這個教程中&#xff0c;我們將使用 PyTorch 訓練一個簡單的多層感知機&#xff08;MLP&#xff09;模型來解決 MNIST 手寫數字分類問題&#xff0c;并且使用 TensorBoard 來可視化訓練過程中的不同信息&#xff0c;如損失、準確度、圖像、參數分布和學習率變化。 步驟 1&…

第十五章 15.OSPF(CCNA)

第十五章 15.OSPF(CCNA) 介紹了大家都能用的OSPF動態路由協議 注釋&#xff1a; 學習資源是B站的CCNA by Sean_Ning CCNA 最新CCNA 200-301 視頻教程(含免費實驗環境&#xff09; PS&#xff1a;喜歡的可以去買下他的課程&#xff0c;不貴&#xff0c;講的很細 To be cont…

手機連接windows遇到的問題及解決方法

文章目錄 寫在前面一、手機與windows 連接以后 無法在win端打開手機屏幕,提示801方法零、檢查連接方法一、系統修復方法二、斷開重連方法三、軟件更新方法四、關閉防火墻 寫在前面 本文主要記錄所遇到的問題以及解決方案&#xff0c;以備后用。 所用機型&#xff1a;win11 專業…

Spring Boot + MyBatis Plus 項目中,entity和 XML 映射文件的查找機制

在 Spring Boot MyBatis - Plus 項目中&#xff0c;entity&#xff08;實體類&#xff09;和 XML 映射文件的查找機制有其默認規則&#xff0c;也可通過配置調整&#xff0c;以下詳細說明&#xff1a; 一、實體類&#xff08;entity&#xff09;的查找 MyBatis - Plus 能找到…

itvbox綠豆影視tvbox手機版影視APP源碼分享搭建教程

我們先來看看今天的主題&#xff0c;tvbox手機版&#xff0c;然后再看看如何搭建&#xff1a; 很多愛好者都希望搭建自己的影視平臺&#xff0c;那該如何搭建呢&#xff1f; 后端開發環境&#xff1a; 1.易如意后臺管理優化版源碼&#xff1b; 2.寶塔面板&#xff1b; 3.ph…

Vue Electron 使用來給若依系統打包成exe程序,出現登錄成功但是不跳轉頁面(已解決)

描述 用vue打成electron可執行exe程序時&#xff0c;發現個問題&#xff0c;一直登錄之后&#xff0c;頁面跳轉不了&#xff0c;其實后臺請求已成功發送 那么懷疑就是vue頁面跳轉的事情 解決 大部分vue 前段項目 會使用 js-cookie 這個庫 來操作瀏覽器的cookie 然而這個庫 …

Blob設置type為application/msword將document DOM節點轉換為Word(.doc,.docx),并下載到本地

core code // 導出為Word文檔downloadWord({ dom, fileName "", fileType "doc", l {} } {}) {l.show && l.show();// 獲取HTML內容const content dom.innerHTML;// 構建Word文檔的HTML結構const html <!DOCTYPE html><html>&l…

無需 Mac,使用Appuploader簡化iOS上架流程

作為開發者&#xff0c;尤其是從事跨平臺開發的團隊&#xff0c;iOS應用上架一直是一項繁瑣且挑戰重重的工作。盡管Flutter、React Native等框架使得我們可以在不同平臺之間共享代碼&#xff0c;iOS上架仍然是一個不可忽視的難題。因為它不僅僅涉及代碼構建&#xff0c;還涉及到…

【JVM】Java虛擬機(二)——垃圾回收

目錄 一、如何判斷對象可以回收 &#xff08;一&#xff09;引用計數法 &#xff08;二&#xff09;可達性分析算法 二、垃圾回收算法 &#xff08;一&#xff09;標記清除 &#xff08;二&#xff09;標記整理 &#xff08;三&#xff09;復制 &#xff08;四&#xff…

Android 實現可拖動的ImageView

Android 實現可拖動的ImageView 代碼實現&#xff1a; public class DraggableImageView extends AppCompatImageView {private float lastTouchX;private float lastTouchY;public DraggableImageView(Context context) {super(context);init();}public DraggableImageView(C…

微信小程序中wxs

一、先新建wxs文件subutil.wxs 1、寫過濾器 //return class var isClass function(val) {if (val 0) {return grid-item} else if (val 1) {return temperature-error-slot} else if (val 2) {return chargingCycles-error-slot} else {return unrecognized-slot} } 2、…