CSS多种常用文字处理方式

2023-11-01 01:59

本文主要是介绍CSS多种常用文字处理方式,希望对大家解决编程问题提供一定的参考价值,需要的开发者们随着小编来一起学习吧!

CSS多种常用文字处理方式(详细)

在日常业务流程中,我们经常会遇到如单行或多行文字过长显示省略号,又或者是在当前文本后追加文本等问题。平时我都是直接CV完事,难得有时间就总结一下这些我们常用到的文字处理方法。

本文通用样式:

.us {border: 1px solid black;margin: 25px;padding: 25px;width: 120px; }

文字过长显示省略号

在这里插入图片描述

HTML

<div class="ellipsis us">测试文字过长时会出现省略号的问题
</div>

CSS

.ellipsis{display: block;overflow: hidden;text-overflow: ellipsis;white-space: nowrap;
}
  • overflow:对超出文本处理,hidden就是隐藏
  • text-overflow:用于确定如何提示用户存在隐藏的溢出内容,ellipsis就是显示省略号
  • white-space:如何处理元素中的空白字符,nowrap会使连续的空白符会被合并,且文本内的换行无效。

多行文本超出显示省略号

常见错误

多行文本在设置时可能会遇到这样的一种情况:本该隐藏的部分却在padding里出现

在这里插入图片描述

HTML
<div class="line-clamp us">测试多行文本过长时会出现省略号的问题
</div>
CSS
.line-clamp {word-break: break-all;overflow: hidden;text-overflow: ellipsis;display: -webkit-box;-webkit-line-clamp: 2;-webkit-box-orient: vertical;
}

只是看代码似乎没有什么问题,那为什么没有隐藏呢?这是因为在CSS中,我们的元素标签都遵循着盒子模型的层级结构:

在盒子模型之中,我们的内容一般都是呈现在Content之中,当在特殊情况下我们依旧可以将内容挤到Padding层。这是因为盒子模型中区分内外层,Padding作为内边距依旧属于内部的范畴,所以我们内容可以作用在Padding。

Diagram of the box model

解决方法

在内部多套上一层容器,将padding放在父容器做处理,多行省略在子容器处理,两者便不会冲突

在这里插入图片描述

HTML
<div class="line-clamp us"><div>测试多行文本过长时会出现省略号的问题</div  
</div>
CSS
.line-clamp > div{word-break: break-all;overflow: hidden;text-overflow: ellipsis;display: -webkit-box;-webkit-line-clamp: 2;-webkit-box-orient: vertical;
}
  • -webkit-box:设置box属性,CSS3中新加的属性

  • -webkit-line-clamp:

    可以把块容器中的内容限制为指定的行数,它只有在 display 属性设置成 -webkit-box 或者 -webkit-inline-box 并且 -webkit-box-orient (en-US) 属性设置成 vertical时才有效果

  • -webkit-box-orient:用来设置一个元素是水平还是垂直布局其内容

  • word-break:指定了怎样在单词内断行。

    break-all:对于 non-CJK (CJK 指中文/日文/韩文) 文本,可在任意字符间断行。

以" - "连接文本(仅英文)

这个方法一般只有在英文长段落的时候才会用到,大家可以简单了解一下就好了。中文是无法识别的(也没有这种习惯)。

在这里插入图片描述

HTML

<div class="hyphens us" style="width: 210px;">测试以'-'连接文本:The browser is free to automatically break words at appropriate hyphenation points, followingwhatever rules it chooses to use. Suggested line break opportunities, as covered in Suggesting line breakopportunities, should be preferred over automatically selecting break points whenever possible.
</div>

CSS

.hyphens {hyphens: auto;
}
  • hyphens:告知浏览器在换行时如何使用连字符连接单词。可以完全阻止使用连字符,也可以控制浏览器什么时候使用,或者让浏览器决定什么时候使用。

    auto:浏览器可以自由地在适当的连字点自动断开单词,遵循它选择使用的任何规则。

使用伪类 ::after 添加文本

在业务需求要求内容结尾添加固定文本的时候,我们可以使用 ::after 属性进行添加。但该属性只能在末尾追加,这就注定它无法实现如 text-overflow: ellipsis; 自动添加省略号那么方便的操作。

追加效果

如果需要在内容文本前面追加,则是使用 ::before 伪类属性进行追加,在此处不多加演示。大家可以自己尝试一下。

在这里插入图片描述

模拟效果

即便无法方便的实现,但我们依旧可以模拟出省略号的效果。当然不建议大家使用,因为依旧会出现一些问题,比如长度不够等问题。

在这里插入图片描述

HTML
<div class="us"><div id="box"> 测试模拟文字过长时会出现省略号的问题</div>
</div>
CSS
#box{display: flex;justify-content: center;align-items: flex-start;height: 45px;overflow: hidden;
}#box::after {border: 1px solid black;content: '...';display: block;overflow: hidden;height: 42px;line-height: 55px;width: 50px;
}

自定义属性控制文本内容

可以在自定义属性中设置一个独特的属性作为全局样式标准,我们可以通过 :root 伪类来进行设置。

在这里插入图片描述

HTML

<div class="us self">测试自定义属性
</div>

CSS

:root {-self-color: rgb(146, 207, 233);
}.self {color: var(-self-color);transform: scale(0.8);
}
  • :root:匹配文档树的根元素。对于 HTML 来说,:root 表示 元素,除了优先级更高之外,与 html 选择器相同。
  • transform: scale(缩放比例)

这篇关于CSS多种常用文字处理方式的文章就介绍到这儿,希望我们推荐的文章对编程师们有所帮助!



http://www.chinasem.cn/article/319680

相关文章

详解Vue如何使用xlsx库导出Excel文件

《详解Vue如何使用xlsx库导出Excel文件》第三方库xlsx提供了强大的功能来处理Excel文件,它可以简化导出Excel文件这个过程,本文将为大家详细介绍一下它的具体使用,需要的小伙伴可以了解... 目录1. 安装依赖2. 创建vue组件3. 解释代码在Vue.js项目中导出Excel文件,使用第三

虚拟机与物理机的文件共享方式

《虚拟机与物理机的文件共享方式》文章介绍了如何在KaliLinux虚拟机中实现物理机文件夹的直接挂载,以便在虚拟机中方便地读取和使用物理机上的文件,通过设置和配置,可以实现临时挂载和永久挂载,并提供... 目录虚拟机与物理机的文件共享1 虚拟机设置2 验证Kali下分享文件夹功能是否启用3 创建挂载目录4

linux报错INFO:task xxxxxx:634 blocked for more than 120 seconds.三种解决方式

《linux报错INFO:taskxxxxxx:634blockedformorethan120seconds.三种解决方式》文章描述了一个Linux最小系统运行时出现的“hung_ta... 目录1.问题描述2.解决办法2.1 缩小文件系统缓存大小2.2 修改系统IO调度策略2.3 取消120秒时间限制3

Linux alias的三种使用场景方式

《Linuxalias的三种使用场景方式》文章介绍了Linux中`alias`命令的三种使用场景:临时别名、用户级别别名和系统级别别名,临时别名仅在当前终端有效,用户级别别名在当前用户下所有终端有效... 目录linux alias三种使用场景一次性适用于当前用户全局生效,所有用户都可调用删除总结Linux

Java实现Excel与HTML互转

《Java实现Excel与HTML互转》Excel是一种电子表格格式,而HTM则是一种用于创建网页的标记语言,虽然两者在用途上存在差异,但有时我们需要将数据从一种格式转换为另一种格式,下面我们就来看看... Excel是一种电子表格格式,广泛用于数据处理和分析,而HTM则是一种用于创建网页的标记语言。虽然两

Java 字符数组转字符串的常用方法

《Java字符数组转字符串的常用方法》文章总结了在Java中将字符数组转换为字符串的几种常用方法,包括使用String构造函数、String.valueOf()方法、StringBuilder以及A... 目录1. 使用String构造函数1.1 基本转换方法1.2 注意事项2. 使用String.valu

Mybatis官方生成器的使用方式

《Mybatis官方生成器的使用方式》本文详细介绍了MyBatisGenerator(MBG)的使用方法,通过实际代码示例展示了如何配置Maven插件来自动化生成MyBatis项目所需的实体类、Map... 目录1. MyBATis Generator 简介2. MyBatis Generator 的功能3

Python数据处理之导入导出Excel数据方式

《Python数据处理之导入导出Excel数据方式》Python是Excel数据处理的绝佳工具,通过Pandas和Openpyxl等库可以实现数据的导入、导出和自动化处理,从基础的数据读取和清洗到复杂... 目录python导入导出Excel数据开启数据之旅:为什么Python是Excel数据处理的最佳拍档

SpringBoot项目启动后自动加载系统配置的多种实现方式

《SpringBoot项目启动后自动加载系统配置的多种实现方式》:本文主要介绍SpringBoot项目启动后自动加载系统配置的多种实现方式,并通过代码示例讲解的非常详细,对大家的学习或工作有一定的... 目录1. 使用 CommandLineRunner实现方式:2. 使用 ApplicationRunne

vue解决子组件样式覆盖问题scoped deep

《vue解决子组件样式覆盖问题scopeddeep》文章主要介绍了在Vue项目中处理全局样式和局部样式的方法,包括使用scoped属性和深度选择器(/deep/)来覆盖子组件的样式,作者建议所有组件... 目录前言scoped分析deep分析使用总结所有组件必须加scoped父组件覆盖子组件使用deep前言