说说html <p>元素的文本换行

今天通过measureText()方法计算文字宽度,想实现文字左右滑动翻页的效果。却发现某些地方老是不对,后来才发现是换行规则在作怪。

这里就不说word-wrap和word-break这两个css样式了,因为问题与它们无关,姑且保持默认。另外下面的内容都是在指定浏览器下测试,其他浏览器不保证一致。

 

1. 标点不在行首

这是众所周知的规则,如果自动换行时发现标点在行首,会向前寻找非标点字符作为新行的开始,除非向前找了一行都没找到不是标点的字符。如图。

句号那里为了保证所有句号都不在行首,只能把前面的拿下来做行首,第一个感叹号处同理。但后面感叹号太多了,无法保证每一个都不在行首,所以没办法,浏览器只能强行拆行了。

但“标点”的范围是怎么定义的呢?不同的浏览器的实现有所不同。但一般的,至少下面这些标点不能在行首(包括但不限于):

. , : ; ! ? " ' ) ] } |。?!,、;:”’)》〉】』」﹄〕…

  • 0
    点赞
  • 2
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值