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

简言

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

演示程序

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。但是目前该项声明的兼容性很差。

想更多了解连字符相关内容,请移步至MDNCSS-Tricks

最后编辑于
©著作权归作者所有,转载或内容合作请联系作者
【社区内容提示】社区部分内容疑似由AI辅助生成,浏览时请结合常识与多方信息审慎甄别。
平台声明:文章内容(如有图片或视频亦包括在内)由作者上传并发布,文章内容仅代表作者本人观点,简书系信息发布平台,仅提供信息存储服务。

相关阅读更多精彩内容

  • 无论你是拜佛拜上帝,多少人只是因为「迷」而信。智慧不是你烧香祷告就能获得,那些流传千年的儒释道的智慧和圣经都是上古...
    3eecb6bcf459阅读 187评论 0 0
  • 【思维导图实战派】全佑今生演示 平时用到比较多的工具,终于理出一些数字来了,画好图更方便解说比较了。
    思维导图实战派_陈建花阅读 109评论 2 1
  • 有些低沉,闷闷的,不知道该买不该买,我信任的人那么说了,我就纠结了。 我真挺纠结的,心里难受,难受。 自己咋就没全...
    窗前的小豆豆Y阅读 60评论 0 0
  • 看到群里妈妈写的简书,深深感到自己做的是那么的不够不好,没有按照老师说的听话照做,总是被现实问题拉入情绪低...
    陪小天慢慢长大阅读 187评论 0 1
  • 今天晚上放学回家,儿子在托辅做了一遍作业。我拿出作业看到跟老师布置的不一样,就跟儿子说:"儿子我写一遍你也写...
    筠惠子昊爸爸阅读 206评论 0 0

友情链接更多精彩内容