煦涵说CSS文本断行

栏目: CSS · 发布时间: 6年前

内容简介:煦涵说CSS文本断行

根据 W3C 的 CSS Text Module Level 3 文件来看,在网页中文本断行的规则通常是断在 软性断行机会点 (Soft Wrap Oppportunity)。各种标点符号和空白通常都是一个断行机会点。这对英文来说很方便,因为英文中每个单字都会以空白分隔开。无论是断在空白或者标点符号,都不会影响一个单字被完整呈现。但是对于 CJK (中日韩)来说,每个字都是断行机会点。本期内容和大家一起学习CSS断行相关的属性 word-breakword-wrap

煦涵说CSS文本断行

word-break

该属性指定字母之间的“软性断行机会点”,何为软性断行机会点,即断行发生在断行机会点处。word-break 可取值为 normal | break-all | keep-all。只在 white-space 属性值运行断行时生效。

  1. normal,不同字体根据下面自定义规则断行
    • CJK可以在任何一个CJK字体后断行;
    • non-CJK会在半角空格或者连字符(-)位置自动断行,不会在长单词的中间断行;
    • CJK中包含non-CJK:non-CJK部分按 non-CJK情况处理进行断行处理;
    • CJK中含有标点符号时,浏览器不会让标点符号位于一个行的行首,会使标点符号和前一个字符组成一个整体进行断行;
  2. break-all,在任意的软性断行机会点处断行
    • 允许词内断行
  3. keep-all,禁止词内断行
    • non-CJK与normal属性相同
    • IE浏览器中CJK在半空格、连接符或者任何标点符号处换行
    • Chrome & Safari不支持该属性(使用默认换行)
  4. break-word,非官方属性
    • 该属性只在支持 Webkit/Blink 为内核的浏览器支持,比如Chrome、Safari
    • 该属性效果和下面讲到的 word-wrap: break-word 相同

引用 W3C 文档中的例子:

Here’s a mixed-script sample text:

这是一些汉字, and some Latin, و کمی نوشتن عربی,

และตัวอย่างการเขียนภาษาไทย.

The break-points are determined as follows (indicated by ‘·’):

word-break: normal

这·是·一·些·汉·字,·and·some·Latin,·و·کمی·نوشتن·عربی,·

และ·ตัวอย่าง·การเขียน·ภาษาไทย.

word-break: break-all

这·是·一·些·汉·字,·a·n·d·s·o·m·e·L·a·t·i·n,·و·ﮐ·ﻤ·ﻰ·ﻧ·ﻮ·ﺷ·ﺘ·ﻦ·ﻋ·ﺮ·ﺑ·ﻰ,·

แ·ล·ะ·ตั·ว·อ·ย่·า·ง·ก·า·ร·เ·ขี·ย·น·ภ·า·ษ·า·ไ·ท·ย.

word-break: keep-all

这是一些汉字,·and·some·Latin,·و·کمی·نوشتن·عربی,·

แและ·ตัวอย่าง·การเขียน·ภาษาไทย.

word-wrap

该属性指定是否可以在单词内任意断开,以防止在另外不可破坏的字符串太长而不能放置在行框内而造成溢出。只在 white-space 属性值运行断行时生效。支持所有浏览器。可取值为 normal | break-word。

  1. normal
    • 在半空格、连接符位置处断行;
  2. break-word
    • 如果行中没有其他可接受的断点,则一个不可破坏的“单词”可能会在任意点断开;

实例对比

<div class="box keepall">
自身都带有自动换行功能啊,AAAAAA BBBBBBBBBBBBB,CCCCCCCCC,的右端自动换行。
</div>
此例中注意keep-all在不同浏览器中的兼容,特殊符号处的换行!
<div class="box breakall">
自身都带有自动换行功能啊,AAAAAA BBBBBBBBBBBBB,CCCCCCCCC,的右端自动换行。
</div>
此例中注意逗号的位置!
<div class="box breakword">
自身都带有自动换行功能啊,AAAAAA BBBBBBBBBBBBB,CCCCCCCCC,的右端自动换行。
</div>
<style type="text/css">
    .box{width:100px;height:100px;border:2px solid #f00;color:#333;font:12px arial;margin-bottom:10px;}
    .keepall{word-break:keep-all;}
    .breakall{word-break:break-all;}
    .breakword{word-wrap:break-word;}
</style>

对比结果

煦涵说CSS文本断行

感谢您的阅读

–eof–

作者[煦涵]

2017年06月18日

下面是「FED实验室」的微信公众号二维码,欢迎扫描关注:

煦涵说CSS文本断行


以上就是本文的全部内容,希望本文的内容对大家的学习或者工作能带来一定的帮助,也希望大家多多支持 码农网

查看所有标签

猜你喜欢:

本站部分资源来源于网络,本站转载出于传递更多信息之目的,版权归原作者或者来源机构所有,如转载稿涉及版权问题,请联系我们

网络营销实战密码

网络营销实战密码

昝辉Zac / 电子工业出版社 / 2009.1 / 56.00元

本书是作者几年来网络营销实战的总结,与其他网络营销书籍最大不同之处是:只专注于实战,不谈理论。本书分三部分详细介绍了网络营销实用策略和技巧,并分析了大量实战案例。第一部分介绍市场与产品研究,包括用户、市场和竞争对手的调查;产品、目标市场的确定;价格策略;赢利模式等。第二部分讨论以网络营销为导向的网站设计,包括怎样在网站上卖东西、提高转化率,以及网站目标设定等。第三部分研究怎样给网站带来流量,详细讨......一起来看看 《网络营销实战密码》 这本书的介绍吧!

html转js在线工具
html转js在线工具

html转js在线工具

正则表达式在线测试
正则表达式在线测试

正则表达式在线测试

HEX CMYK 转换工具
HEX CMYK 转换工具

HEX CMYK 互转工具