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

相关文章

Vue3 的 shallowRef 和 shallowReactive:优化性能

大家对 Vue3 的 ref 和 reactive 都很熟悉,那么对 shallowRef 和 shallowReactive 是否了解呢? 在编程和数据结构中,“shallow”(浅层)通常指对数据结构的最外层进行操作,而不递归地处理其内部或嵌套的数据。这种处理方式关注的是数据结构的第一层属性或元素,而忽略更深层次的嵌套内容。 1. 浅层与深层的对比 1.1 浅层(Shallow) 定义

HarmonyOS学习(七)——UI(五)常用布局总结

自适应布局 1.1、线性布局(LinearLayout) 通过线性容器Row和Column实现线性布局。Column容器内的子组件按照垂直方向排列,Row组件中的子组件按照水平方向排列。 属性说明space通过space参数设置主轴上子组件的间距,达到各子组件在排列上的等间距效果alignItems设置子组件在交叉轴上的对齐方式,且在各类尺寸屏幕上表现一致,其中交叉轴为垂直时,取值为Vert

JS常用组件收集

收集了一些平时遇到的前端比较优秀的组件,方便以后开发的时候查找!!! 函数工具: Lodash 页面固定: stickUp、jQuery.Pin 轮播: unslider、swiper 开关: switch 复选框: icheck 气泡: grumble 隐藏元素: Headroom

这15个Vue指令,让你的项目开发爽到爆

1. V-Hotkey 仓库地址: github.com/Dafrok/v-ho… Demo: 戳这里 https://dafrok.github.io/v-hotkey 安装: npm install --save v-hotkey 这个指令可以给组件绑定一个或多个快捷键。你想要通过按下 Escape 键后隐藏某个组件,按住 Control 和回车键再显示它吗?小菜一碟: <template

【 html+css 绚丽Loading 】000046 三才归元阵

前言:哈喽,大家好,今天给大家分享html+css 绚丽Loading!并提供具体代码帮助大家深入理解,彻底掌握!创作不易,如果能帮助到大家或者给大家一些灵感和启发,欢迎收藏+关注哦 💕 目录 📚一、效果📚二、信息💡1.简介:💡2.外观描述:💡3.使用方式:💡4.战斗方式:💡5.提升:💡6.传说: 📚三、源代码,上代码,可以直接复制使用🎥效果🗂️目录✍️

【前端学习】AntV G6-08 深入图形与图形分组、自定义节点、节点动画(下)

【课程链接】 AntV G6:深入图形与图形分组、自定义节点、节点动画(下)_哔哩哔哩_bilibili 本章十吾老师讲解了一个复杂的自定义节点中,应该怎样去计算和绘制图形,如何给一个图形制作不间断的动画,以及在鼠标事件之后产生动画。(有点难,需要好好理解) <!DOCTYPE html><html><head><meta charset="UTF-8"><title>06

【C++】_list常用方法解析及模拟实现

相信自己的力量,只要对自己始终保持信心,尽自己最大努力去完成任何事,就算事情最终结果是失败了,努力了也不留遗憾。💓💓💓 目录   ✨说在前面 🍋知识点一:什么是list? •🌰1.list的定义 •🌰2.list的基本特性 •🌰3.常用接口介绍 🍋知识点二:list常用接口 •🌰1.默认成员函数 🔥构造函数(⭐) 🔥析构函数 •🌰2.list对象

常用的jdk下载地址

jdk下载地址 安装方式可以看之前的博客: mac安装jdk oracle 版本:https://www.oracle.com/java/technologies/downloads/ Eclipse Temurin版本:https://adoptium.net/zh-CN/temurin/releases/ 阿里版本: github:https://github.com/

内核启动时减少log的方式

内核引导选项 内核引导选项大体上可以分为两类:一类与设备无关、另一类与设备有关。与设备有关的引导选项多如牛毛,需要你自己阅读内核中的相应驱动程序源码以获取其能够接受的引导选项。比如,如果你想知道可以向 AHA1542 SCSI 驱动程序传递哪些引导选项,那么就查看 drivers/scsi/aha1542.c 文件,一般在前面 100 行注释里就可以找到所接受的引导选项说明。大多数选项是通过"_

30常用 Maven 命令

Maven 是一个强大的项目管理和构建工具,它广泛用于 Java 项目的依赖管理、构建流程和插件集成。Maven 的命令行工具提供了大量的命令来帮助开发人员管理项目的生命周期、依赖和插件。以下是 常用 Maven 命令的使用场景及其详细解释。 1. mvn clean 使用场景:清理项目的生成目录,通常用于删除项目中自动生成的文件(如 target/ 目录)。共性规律:清理操作