简言

在页面排版中,经常遇到长英文单词溢出段落容器的情况,如何解决该问题?现编制如下对比演示程序:

演示程序

42du.cn-在线演示程序

部分html代码

<div class="block">
<h4>word-break:break-all;</h4>
<p class="break-all">Extraordinarily longlong word!</p>
</div>

CSS代码

  .break-all {
word-break: break-all;
}
.break-word {
word-wrap: break-word;
}
.hyphens {
word-wrap: break-word;
-webkit-hyphens: auto;
-ms-hyphens: auto;
hyphens: auto;
}

运行结果

Firefox 58运行结果如下:

问题

在进行英文段落排版中,常常会碰到长英文单词的情况,一般在默认情况下,如果单词排版到了容器边界,该单词会被自动移到下一行中显示。而如果单个单词的长度大于容器宽度时,就会产生溢出容器边界的情况。见文中演示的第一部分,页面上Extraordinarily长度溢出了容器边界。

在CSS中提到单词断行,自然就会想到word-break和word-wrap。具体差别对比,在演示的第二和第三部分对比可以看出来。

word-break: break-all;

上述声明,如演示第二部分所示。单词排版到了容器边界,该单词就会被断开成两部分,后一部分移到下一行显示。这样排版段落的右边很整齐,我喜欢这种效果。但break-all会造成很多行末单词断开,影响阅读体验。

word-wrap: break-word;

上述声明,如演示第三部分所示。单词排版到了容器边界,优先把单词移到下一行显示。而当单词长度超过行宽度时,再断开单词。即优先行内断开,行内断开不灵时、再采用单词断开。这样排版段落右侧不够整齐、有留白产生,但不会造成大量单词被断开、也不会产生溢出。

hyphens: auto;

上述声明,如演示第四部分所示。如果更深入一步,想给断开的单词加一个连字符(-),可以采用hyphens: auto。但是目前该项声明的兼容性很差。

想更多了解连字符相关内容,请移步至MDN或CSS-Tricks。

如何在CSS中解决长英文单词的页面显示问题?CSS3的更多相关文章

  1. 如何在CSS中使用变量

    前言 CSS变量(官方称为自定义属性)是用户定义的值,它可以在你的代码库中设置一次并多次使用.它们使管理颜色.字体.大小和动画值变得更加容易,并确保整个web应用的一致性. 举个例子,你可以将品牌颜色 ...

  2. Loadrunner解决启动浏览器后页面显示空白

    Loadrunner解决启动浏览器后页面显示空白 2018年5月20日,今天照常打开Loadrunner准备学习,在录制的时候却出现了一个问题,浏览器可以启动,但是程序页面缺是加载不出来,主要症状体现 ...

  3. CSS遮罩——如何在CSS中使用遮罩

    Css遮罩是2008年4月由苹果公司添加到webkit引擎中的.遮罩提供一种基于像素级别的,可以控制元素透明度的能力,类似于png24位或png32位中的alpha透明通道的效果. 图像是由rgb三个 ...

  4. [转]CSS遮罩——如何在CSS中使用遮罩

    特别声明:此篇文章由D姐根据Christian Schaefer的英文文章原名<CSS Masks – How To Use Masking In CSS Now>进行翻译,整个译文带有我 ...

  5. 如何在CSS中映射的鼠标位置,并实现通过鼠标移动控制页面元素效果

    映射鼠标位置或实现拖拽效果,我们可以在 JavaScript 中做到这一点.但实际上,在CSS中有更加简洁的方法,我们可以在不使用JavaScript 的情况下,仍然可以实现相同的功能! 只使用CSS ...

  6. 使用Sass优雅并高效的实现CSS中的垂直水平居中(附带Flex布局,CSS3+SASS完美版)

    实现css水平垂直居中的方法有很多,在这里我简单的说下四种比较常用的方法: 1.使用CSS3中的Flex布局 对于flex,我们要了解的是它是一个display的属性,而且必须要给他的父元素设置fle ...

  7. 如何在 iOS 中解决循环引用的问题

    稍有常识的人都知道在 iOS 开发时,我们经常会遇到循环引用的问题,比如两个强指针相互引用,但是这种简单的情况作为稍有经验的开发者都会轻松地查找出来. 但是遇到下面这样的情况,如果只看其实现代码,也很 ...

  8. 如何在Loadrunner11中解决HTTP BASIC认证登录报401的问题

    在对Carte+kettle的性能测试过程中,通过在loadrunner中用web_set_user("cluster", "cluster","17 ...

  9. 【Airtest】由于Airtest中long_click无法实现长按,教你如何在Airtest中实现长按的方法

    Airtest中我们想要实现长按操作,poco中有一个方法long_click,但是实际使用了一下,发现并没有卵用,仍然是单击操作,如下图 那我们要如何进行长按操作呢?其实可以利用swipe实现,以长 ...

随机推荐

  1. js css3实现钟表效果

    原理: 利用transform-origin改变旋转的圆心,实现秒数和分钟数的刻度线,利用transfrom translate实现钟表小时刻度的显示 html: <div class=&quo ...

  2. 如何分析一个QT类

    作者:gnuhpc  出处:http://www.cnblogs.com/gnuhpc/ 我们以QLineEdit这个类为例来看看如何学习分析一个QT类. 1.Public Types: 这是一个在这 ...

  3. editplus怎么在前后插入字符

    快捷键:ctrl+h 未编辑之前: 源: 一:行首批量添加   查找"^" 替换为“我是行首aaa” 二: 行尾批量添加   查找"\n" 替换为“'bbb我是 ...

  4. 如何在模板类中使用这些point类型?

    博客转载自:http://www.pclcn.org/study/shownews.php?lang=cn&id=271 由于PCL模块较多,并且是一个模板库,在一个源文件里包含很多PCL算法 ...

  5. Umbraco image中使用Crop URL

    需要在Umbraco 的image中使用crop URL.首先你需要取出这个image作为IPublishedContent 有以下两种方法 第一种: var imageId = Model.Cont ...

  6. VMware Workstation “无法连接 MKS: 套接字连接尝试次数太多;正在放弃。” 解决方法【转】

    今天和往常一样打开电脑,打开VMware Workstation,打开其中的一台虚拟机,以前都是这么打开没有问题,今天打开虚拟机突然提示“无法连接 MKS: 套接字连接尝试次数太多:正在放弃.”. 经 ...

  7. 分层确定性钱包开发的代码实现(HD钱包服务)

    HD Wallets的全称是Hierachical Deterministic Wallets, 对应中文是 分层确定性钱包. 这种钱包能够使用一组助记词来管理所有的账户的所有币种,在比特币的BIP3 ...

  8. 能量项链 洛谷P1063

    1154 能量项链 2006年NOIP全国联赛提高组 时间限制: 1 s 空间限制: 128000 KB 题目等级 : 黄金 Gold 题解 题目描述 Description 在Mars星球上,每个M ...

  9. scrapy爬取数据的基本流程及url地址拼接

    说明:初学者,整理后方便能及时完善,冗余之处请多提建议,感谢!   了解内容: Scrapy :抓取数据的爬虫框架     异步与非阻塞的区别   异步:指的是整个过程,中间如果是非阻塞的,那就是异步 ...

  10. mac搭建TensorFlow环境

    1.首先安装Anaconda,下载地址:https://www.anaconda.com/download/#macos,根据需要下载所需的版本. 2.安装TensorFlow,安装命令:pip in ...