摘要:今天在搜索实现中文两端对齐的解决方法时,偶然发现了这个我遇到问题是看不到效果,无论是英文还是中文,在和下都不起作用。首先,大家要知道,是专门为英文设计的,谁叫是老外发明的呢,用来实现英文语句的两端对齐。
今天在搜索“CSS实现中文两端对齐”的解决方法时,偶然发现了这个hack:
我遇到问题是:看不到效果,无论是英文还是中文,在IE和chrome下都不起作用。还好在StackOverflow上找到了解决方法 :)
样式:
div.justify { text-align: justify; width:200px; font-size:15px; color:red; border:1px solid blue; height:18px; } div.justify > span { display: inline-block /* Opera */; padding-left: 99%; }HTML:
hello, text justify.
hello, text justify.
中 文 两 端 对 齐
中 文 两 端 对 齐
不明所以,在旭哥的文章看到的关于text-align:justify的解释是这样的
要理解原理,我们首先要搞清楚文本的两端对齐声明text-align:justify起作用的本质。首先,大家要知道,text-align:justify是专门为英文设计的,谁叫CSS是老外发明的呢,用来实现英文语句的两端对齐。注意这里的,是语句的对齐。大家应该都知道,英文语句是一个单词一个单词组合而成的,每个单词之前使用空格分隔。
text-align:justify之所以可以让英文段落两端对齐,那是因为每个英文单词之前那个透明看不见的空格被拉伸了。注意,是空格被拉伸了,对,只有空格。因此,当我们写下一段洋洋洒洒中文内容的时候,text-align:justify是没有任何作用的,跟没设置没任何区别。为什么呢?很简单,因为中文是一个一个汉字,汉字之间是没有空格的,自然也就不能拉伸,自然也就不能两端对齐。怎么办呢?难道中文就不行了吗?
当然不是!既然正常的中文文字之间没有空格,我们自己加一点不就好了。例如下面代码:
感觉还是无法理解这个hack的原理。求教!
然后又去w3school上查阅了关于text-align:justify的解释:
justify:实现两端对齐文本效果,它会带来自己的一些问题。
值 justify 可以使文本的两端都对齐。在两端对齐文本中,文本行的左右两端都放在父元素的内边界上。然后,调整单词和字母间的间隔,使各行的长度恰好相等。您也许已经注意到了,两端对齐文本在打印领域很常见。不过在 CSS 中,还需要多做些考虑。
要由用户代理(而不是 CSS)来确定两端对齐文本如何拉伸,以填满父元素左右边界之间的空间。例如,有些浏览器可能只在单词之间增加额外的空间,而另外一些浏览器可能会平均分布字母间的额外空间(不过 CSS 规范特别指出,如果 letter-spacing 属性指定为一个长度值,“用户代理不能进一步增加或减少字符间的空间”)。还有一些用户代理可能会减少某些行的空间,使文本挤得更紧密。所有这些做法都会影响元素的外观,甚至改变其高度,这取决于用户代理的对齐选择影响了多少文本行。
CSS 也没有指定应当如何处理连字符(注1)。大多数两端对齐文本都使用连字符将长单词分开放在两行上,从而缩小单词之间的间隔,改善文本行的外观。不过,由于 CSS 没有定义连字符行为,用户代理不太可能自动加连字符。因此,在 CSS 中,两端对齐文本看上去没有打印出来好看,特别是元素可能太窄,以至于每行只能放下几个单词。当然,使用窄设计元素是可以的,不过要当心相应的缺点。
注1:CSS 中没有说明如何处理连字符,因为不同的语言有不同的连字符规则。规范没有尝试去调和这样一些很可能不完备的规则,而是干脆不提这个问题。
还是没有找到合理解释。只能暂时先记录在这里了。
附:用伪元素修改:
.field-title{ width: 65px; height:40px; text-align:justify; &:after{//文字两端对齐 content: ""; display: inline-block; padding-left: 99%; } }
文章版权归作者所有,未经允许请勿转载,若此文章存在违规行为,您可以联系管理员删除。
转载请注明本文地址:https://www.ucloud.cn/yun/49896.html
摘要:今天在搜索实现中文两端对齐的解决方法时,偶然发现了这个我遇到问题是看不到效果,无论是英文还是中文,在和下都不起作用。首先,大家要知道,是专门为英文设计的,谁叫是老外发明的呢,用来实现英文语句的两端对齐。 今天在搜索CSS实现中文两端对齐的解决方法时,偶然发现了这个hack: 我遇到问题是:看不到效果,无论是英文还是中文,在IE和chrome下都不起作用。还好在StackOverflo...
摘要:第二次尝试之前说了看英文原版的文档,好的,我发现了一个很不错的属性值。好东西啊好东西,在的基础上新增了对最后一行的作用。我发现了一个属性叫,它可以控制最后一行的文字对齐。效果就是文章最开始的图片。,我觉得英文版可信度更高吧。 前言 这是一个很短的文章,内容也不多,目的其实在于吐槽MDN文档。 需求 实现下图中的样式: showImg(https://segmentfault.com...
摘要:后面查阅资料发现可以实现最后一行两端对齐,但似乎兼容性很差不支持最近的项目遇到了这样的需求:(要求标题部分不管文字多少,都必须两端对齐) 如下图: 当时也没有多想直接使用‘ ’进行代替,毕竟产品同学想快一点看到效果,不敢怠慢!不过到第二个页面就傻眼了。 如图: 这很明显‘ ’已经无法满足我了,只好上 。 这里简单说下几种空格的区别: 半角...
阅读 3183·2021-11-24 09:39
阅读 2921·2021-11-23 09:51
阅读 885·2021-11-18 10:07
阅读 3542·2021-10-11 10:57
阅读 2738·2021-10-08 10:04
阅读 2998·2021-09-26 10:11
阅读 1045·2021-09-23 11:21
阅读 2777·2019-08-29 17:28