html文本最小长度,CSS中处理不同长度文本的几种小技巧

CSS中处理不同长度文本的几种小技巧

65c9cc9fb6104a668fa68b3762d3ad37.png

【推荐教程:CSS视频教程 】

当我们使用 CSS 构建布局时,考虑长短文本内容很重要,如果能清楚地知道当文本长度变化时需要怎么处理,可以避免很多不必要的问题。

在许多情况下,添加或删除一个单词会改变 UI 的外观,更糟的是,它可能会破坏原有的设计,使其无法访问。在我学习 CSS 的早期,我低估了添加或删除一个单词的作用。在本文中,我会介绍几种不同的技巧,大家可以马上使用它们来处理CSS中不同长度的文本。

问题

在讨论处理文本内容的技巧之前,先来解释一下这个问题,假设我们有一个垂直导航。

a4340b38bfe29c7936aafe00e0cbd2df.png

名字的长度可以变化,特别是如果你是在一个多语言网站工作。在上面的示例中,随着名称变长,它被包装到第二行。这里有一些问题应该把这段文字截短吗

应该换成多行吗? 如果是,最多可以换行多少行?

这种情况下单词比预期的多,但是当单词太长时会发生什么呢?默认情况下,它将溢出其容器。

fa70dc32fae795ca426c73b1c680b81a.png

作为专业前端开发人员,重要的是要确定在这种情况下应该要知道怎么处理。 幸运的是,有一些CSS属性就是专门用于解决此类问题。

除此之外,问题不仅在于长内容,短内容也会破坏UI,或者至少会让它看起来很奇怪。如下面的示例

245661142a5d05f67947417e37154663.png

带有ok文本的按钮的宽度非常小。我并不是说这是一个致命的问题,但它会让按钮看起来很弱或很难被注意到。

在这种情况下我们该怎么办? 也许在按钮上设置min-width? 无论内容长度如何,都可以提供安全的宽度。

长内容

在,大家已经对问题有所了解,我们接着深入研究CSS 技巧,这些技巧可为处理长内容提供解决方案。

overflow-wrap

CSS 属性 overflow-wrap 是用来说明当一个不能被分开的字符串太长而不能填充其包裹盒时,为防止其溢出,浏览器是否允许这样的单词中断换行。

aa0997efcd0bcc176614cb3091d8fedf.png

Hyphens

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

hyphens: auto;

}

0cc58620548b1130601d382525c52809.png

文本截断处理

截断是指在句子的末尾添加点,以表明有更多的文本内容。

b6373f8942ca2da194172d3697d06fff.png

没有text-truncation属性或其他属性,但是它混合了一些CSS属性,可以为我们完成工作。.element {

white-space: nowrap;

overflow: hidden;

text-overflow: ellipsis;

}

多行文本截断处理

如果要截断多个行,可以使用line-clamp属性。.element {

display: -webkit-box;

-webkit-line-clamp: 3;

-webkit-box-orient: vertical;

overflow: hidden;

}

要让这种工作,必须使用display: -webkit-box。-webkit-line-clamp指定截断工作的最大行数。

a2a43b1dcef833803c79fda01c51f6cc.png

这种技巧的缺点是,如果要为元素添加padding,它很容易失败。当添加padding时,会导致显示下一行的一部分,这本应该要被截断的。见下图:

a55e8ac2aae7781cf6e9e4fc6a00798d.png

水平滚动

有时候,截断或连接一个单词并不总是可行。 例如,当一个长字换成新行时,JavaScript代码可能会变得难以阅读。 在这种情况下,水平滚动将使阅读体验更好。

01bf1634e8df6562286f32bdab8f6fd0.png

Padding

在某些情况下,大家可能会忘记添加padding,直到我们注意到一个视觉问题。考虑以下问题:

48a286d92a735a8a8cc0929f83f9aa4a.png

这里有一个复选框列表,其中有一个非常接近它的兄弟项。发生这种情况的原因是网格上没有间距。这是来自Techcrunch网站的一个真实的例子。

短内容

这对大家来说并不常见,但在设计和构建UI时,也是一个要重要考虑的事项。

设置一个最小宽度

回到本文开头向大家展示的一个示例。 我们要如何增强它并使按钮看起来更好?

e43bf87263f2cbe4fe7cd0dc79b873c4.png

我们可以通过在按钮上添加min-width来解决此问题,这样一来,它就不会低于该宽度。

4f0e06c2c7df29849198ad0ecfcfcc8c.png

现在大家已经对问题及其解决方案有了一定的了解,我们来探索web上的一些用例和示例。

用例和示例

个人资料卡

这是长内容的常见示例。 很难预测名称的长度。 我们应该如何应对呢?/* 方案1 */

.card__title {

text-overflow: ellipsis;

white-space: nowrap;

overflow: hidden;

}

/* 方案2 */

.card__title {

display: -webkit-box;

-webkit-line-clamp: 2;

-webkit-box-orient: vertical;

overflow: hidden;

}

导航项

在处理多语言布局时,内容长度会发生变化。考虑以下示例

d6549e8c6c0d09cf051f4f591e999794.png

LTR(从左到右)的导航项About比RTL(从右到左)的导航项大。在RTL中,项目看起来太小了。可点击区域太小不利于用户体验。我们能做什么?在这种情况下,最好为导航项设置最小宽度。.nav__item {

min-width: 50px;

}

3202405bdd84860a66956d01bf811198.png

文章内容

一个长词或一个链接是很常见的,尤其是在手机上。考虑以下

655d3e2884e6711a798e0dc7bc9fadf9.png

上面有一个很长的单词,它会上容器溢出导致水平滚动。我们可以通过使用overflow-wrap或hyphens来解决这个问题。.article-content p {

overflow-wrap: break-word;

}

购物车

产品名可以从一个单词到多行不等。在本例中,由于没有在它们之间添加足够的间距,产品名称太接近删除按钮。

2e74a7d50b0cd018817435cc0f735767.png

这个解决方案可以通过添加padding或margin来实现,这取决于你们的上下文,为了简单起见,这里使用margin解决方案。.product__name {

margin-right: 1rem;

}

Flexbox和长内容flexbox

和长内容会发生某种行为,从而导致元素溢出其父元素。 考虑以下示例:

76c14b460e0e6e83778336c6073c9c8c.png

html

Ahmad Shadeed

Follow

css.user {

display: flex;

align-items: flex-start;

}

.user__name {

text-overflow: ellipsis;

white-space: nowrap;

overflow: hidden;

}

然而,当内容很长时,这就不起作用了。文本将溢出它的父文件。

56f5630d461b23758b3657bdf68d2184.png

原因是 flex 项不会收缩到其最小内容大小以下。为了解决这个问题,我们需要在flex项目.user__meta上设置min-width: 0。.user__meta {

/* other styles */

min-width: 0;

}

a6b406ddce8c0fcfdd150ba75682476e.png

总结

我希望智米们已经学会了处理CSS中短内容和长内容的不同技巧。我很喜欢这篇文章,因为它帮助我记住了一些小细节,这对未来的项目会很有帮助。

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.mzph.cn/news/551539.shtml

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈email:809451989@qq.com,一经查实,立即删除!

相关文章

matlab 判断鼠标按下_Simulink(其他校验模块)+Matlabgui(鼠标响应事件)+Stateflow汽车运动逻辑状态(二)...

1 SimulinkSimulink-其他校验模块 如下图所示为一些其他的校验模块,分别为声明模块,离散梯度模块,输入分辨率检测模块;声明模块:当输入值非零时检测通过,当输入值中包含有0时,检测模块报错。…

鸿蒙电脑操作系统最新消息,5G专家预测:7年后鸿蒙将成全球第一大操作系统

在公布两年之后,华为的鸿蒙系统历尽千难万险,蓄势待发,即将在6月2日的线上发布会上正式发布。对于鸿蒙的前景,通信行业的 5G 专家项立刚在接受采访中,在谈到对鸿蒙的看法时,他表示他相信 7 年后鸿蒙会成为全…

vivado顶层模块怎么建_【第2040期】Node 模块化之争:为什么 CommonJS 和 ES Modules 无法相互协调...

前言又到周五了。今日早读文章由Shopee周雨楠翻译授权分享。周雨楠,Shopee金融事业群前端研发,自主学习前端技术3年,喜爱各类数字媒体技术、创意设计,多次参与翻译工作。福利:有两张门票,有需要的跟情封联系…

centos7 转换为lvm_(建议收藏)CentOS7挂载未分配的磁盘空间以及LVM详细介绍

简述本文主要介绍CentOS7下如何挂载未分配磁盘空间的详细操作步骤。LVMLVM,逻辑卷管理,英文全称Logical Volume Manager,是Linux环境下对磁盘分区进行管理的一种机制。是在硬盘分区和文件系统之间添加的一个逻辑层,为文件系统屏蔽…

基于python的图书管理系统测试步骤_Django admin实现图书管理系统菜鸟级教程完整实例...

Django 有着强大而又及其易用的admin后台,在这里,你可以轻松实现复杂代码实现的功能,如搜索,筛选,分页,题目可编辑,多选框. 简单到,一行代码就可以实现一个功能,而且模块之间耦合得相当完美. 不信,一起来看看吧!?用Django实现管理书籍的系统,并能在前台界面对书籍进行增删查改…

c# image转换为bitmap_Python PIL.Image与numpy.array之间的相互转换

前言有时我们使用PIL库读入图像数据后需要查看图像数据的维度,比如shape,或者有时我们需要对图像数据进行numpy类型的处理,所以涉及到相互转化,这里简单记录一下。方法当使用PIL.Image.open()打开图片后,如果要使用img…

计算机网络互联设备功能,计算机网络互联设备简介

一、网卡v 网络适配器,俗称网卡(NIC,Network InterfaceCard 或 Ethernet network card ) 原理:• 工作在OSI/RM中数据链路层的设备– 是局域网接入设备,单机与网络间架设的桥梁 特征:• MACaddress:– uniq…

安全使用计算机事例,计算机安全案例分析.ppt

您所在位置:网站首页 > 海量文档&nbsp>&nbsp资格/认证考试&nbsp>&nbsp安全工程师考试计算机安全案例分析.ppt35页本文档一共被下载:次,您可全文免费在线阅读后下载本文档。下载提示1.本站不保证该用户上传的文档完整性&#…

bootstrap外不引用连接_网络编程Netty IoT百万长连接优化,万字长文精讲

IoT是什么The Internet of things的简称IoT,即是物联网的意思IoT推送系统的设计比如说,像一些智能设备,需要通过APP或者微信中的小程序等,给设备发送一条指令,让这个设备下载或者播放音乐,那么需要做什么才…

计算机基础知识与程序设计二,计算机基础与程序设计.doc

计算机基础与程序设计.doc (17页)本资源提供全文预览,点击全文预览即可全文预览,如果喜欢文档就下载吧,查找使用更方便哦!14.9 积分《计算机基础与稈序设计》是高等教冇H学考试工科备专业的基础课。这门课也是大部分学 生学习计算…

为什么python 为什么没有接口_python没有接口吗

接口只是定义了一些方法,而没有去实现,多用于程序设计时,只是设计需要有什么样的功能,但是并没有实现任何功能,这些功能需要被另一个类(B)继承后,由 类B去实现其中的某个功能或全部功…

画直线_在鸡面前画一条直线,为什么它会晕?西瓜视频这知识好冷告诉答案

为什么世界有那么多的未解之谜,我们无从而知,今天我们来探讨一下在鸡面前画条直线为什么会晕?你们知道吗?今天西瓜视频这知识好冷告诉你们答案,帮助你们掌握生活中所不知道的涨知识,增加我们的知识库。优秀…

永洪bi_案例分享!永洪BI助力知名三甲医院数字化转型升级

案例一:“新数据需求立刻看到结果”建院至今已有100余年的历史,现已发展成为集医疗、科研、教学为一体的某家三级甲等综合医院,通过永洪科技大数据平台,基于医院的HIS系统为数据源,分别从运营管理、药品管理、病例管理…

github mac 添加 ssh_计算机专业MAC操作技巧(二)

1、MAC 终端启动jupyter jupyter安装与配置就不赘述了,MAC终端启动jupyter有点独特。尝试了很多次都没有打开浏览器,把踩的坑总结一下:一直出现找不到浏览器的错误,在本地浏览器中一直打不开。(1)、首先先在…

计算机有必要报英语四级吗,我已工作了,现在有必要去考英语四级吗?还是 – 手机爱问...

2010-02-20有哪些是衡量好坏的重要指标呢?眼看就是春节,电视还没买回家,不是偷懒,是不晓得该如何抉择是好?需要网友帮忙。液晶显示不像PDP、CRT那样属于自发光显示。液晶面板也好,背光技术也罢。只是显示屏…

python分支结构说课_Python_3.8平台上的分支结构(模块.类.函数)_11

计算机 python语言_3.8平台上的分支结构(模块.类.函数)11上节说了,python程序有注释、缩进和程序主题。其应用软件由模块--文件*.py分割保存。模块中有变量、函数、类(数据与函数)等。模块是最基础的最小的结构要素单元。并用__main__模块演示了按照较规范的执行顺序…

计算机应用基础自主学习,《计算机应用基础》自主学习指导

本资料可供职业中学、高职及初学计算机基础的学生参考也可以供授课教师参考《计算机应用基础》自主学习指导一、课程内容、要求、目的1、本课程是一门有关计算机知识的入门课程,主要着重计算机的基础知识、基本概念和基本操作技能的学习和培养,并兼顾实用…

java run里面定义变量_Java程序员50多道最热门的多线程和并发面试题(答案解析)...

下面是Java程序员相关的热门面试题,你可以用它来好好准备面试。1) 什么是线程?线程是操作系统能够进行运算调度的最小单位,它被包含在进程之中,是进程中的实际运作单位。程序员可以通过它进行多处理器编程,你可以使用多…

qpython获取手机gps_基于Python获取照片的GPS位置信息

这篇文章主要介绍了基于Python获取照片的GPS位置信息,文中通过示例代码介绍的非常详细,对大家的学习或者工作具有一定的参考学习价值,需要的朋友可以参考下 昨天听人说,用手机拍照会带着GPS信息,原来没注意过这个,因此查看下并使用…

计算机盐城工学院和常熟理工,【选专业】这6所二本院校的专业,就业不输一本学生!...

原标题:【选专业】这6所二本院校的专业,就业不输一本学生!距离高考只剩下十来天,家长们除了要关心孩子的情况,对于志愿填报也渐渐开始关注起来,这个时候许多家长才发现,志愿填报居然这么麻烦&am…