多行溢出在末尾添加省略号

-webkit-box

目前最主流的方案,但是只能在webkit内核浏览器(Chrome,Safari,edge)和firefox 68+上使用,IE不兼容(IE市场占有率低,可忽略)

css 复制代码
.content{
    width:200px;/*最好设置宽度,否则宽度根据父元素自适应可能出现问题*/
    display: -webkit-box;
    -webkit-line-clamp: 5;/*设置显示行数*/
    -webkit-box-orient:vertical;/*主轴方向,默认值是horizontal即水平排列,也就是子元素(不是文本,子元素中的文本正常换行)在同一行里,会让显示行数的设置失效,改为vertival垂直排列*/
    word-break: break-all;
    text-overflow: ellipsis; /*省略号webkit会自动加,但建议保留*/
    overflow: hidden;/*webkit只是在指定截取位置加省略号,隐藏还是需要这个*/
}

注意-webkit-box-orient:vertical;必须设置,这个相当于告诉webkit是垂直排列,webkit可以根据行数截取,否则lineclamp就会失效,webkit不会截取

注意用word-break: break-all强制换行,如果不写或者white-space: normal那连续的英语单词或者数字等不会自动换行(为了保证连贯性),向右溢出的内容虽然不会影响布局,但是会覆盖右边的元素,影响视觉呈现

兼容所有浏览器的css手搓方案

  1. 父元素div,子元素文本(比如div),在父元素开头加一个div,内容是...模拟省略号
  2. 把这个省略号div设置为右环绕,此时第一行最右边是省略号,其他的文本都是正常排列
  3. 然后需要用一个元素把文本连同省略号一起顶下去这样省略号就在最后一行,可以用一个空白元素或则和直接给父元素设置一个::before(注意这里必须设置content:''和display: block因为默认伪元素是内联元素),高度为把第一行顶到最后一行即可
  4. 然后给文本元素设置负margin把文本拉起来

不需要省略号可以直接overflow: hidden

相关推荐
优橙教育2 分钟前
零基础学AI应用开发要多久?3个月能到什么水平
服务器·开发语言·网络·php
SEO_juper27 分钟前
用 Python 写一个 GEO 可见性检查脚本:你的网站现在能被 AI 引用吗
开发语言·人工智能·爬虫·python·seo·外贸独立站
西柚小萌新42 分钟前
【LLM&&AI应用开发 八股文】--4.3.Agent智能体(下)
java·开发语言·数据库
北极有牛44 分钟前
cpp学习笔记--常量指针
java·开发语言·算法
半杯咖啡半行码1 小时前
C++ 编程与 STL 模板:从泛型编程到内存安全详解
开发语言·c++
caoerzhong1 小时前
JeeWMS 开源 WMS 部署避坑指南:Java 仓库管理系统的环境基线、四类根因与可复现交付
java·开发语言·开源
时间的拾荒人1 小时前
Qt 界面优化:绘图详解 —— 从基础图形到图片处理
开发语言·qt·面试
MayZork2 小时前
Qt 文件操作:QSaveFile 与 QTemporaryFile(含 QTemporaryDir)实战
开发语言·qt
北冥you鱼2 小时前
Go 语言空接口(interface{})使用场景与最佳实践
开发语言·windows·golang
xh didida2 小时前
Linux -- 基础IO
linux·服务器·开发语言·c++