CSS实现文字分散对齐

2024-01-13  本文已影响0人  安之烟波客

实现文字在标签中分散对齐首先要认识两个CSS属性,那就是text-align和text-align-last

1. text-align 属性规定元素中的文本的水平对齐方式。

该属性通过指定行框与哪个点对齐,从而设置块级元素内文本的水平对齐方式。通过允许用户代理调整行内容中字母和字之间的间隔,可以支持值 justify;不同用户代理可能会得到不同的结果。

语法

text-align: left|right|center|justify|initial|inherit;

属性值

描述
left 把文本排列到左边。默认值:由浏览器决定。
right 把文本排列到右边。
center 把文本排列到中间。
justify 实现两端对齐文本效果。
inherit 规定应该从父元素继承 text-align 属性的值。

值 justify

最后一个水平对齐属性是 justify,它会带来自己的一些问题。

值 justify 可以使文本的两端都对齐。在两端对齐文本中,文本行的左右两端都放在父元素的内边界上。然后,调整单词和字母间的间隔,使各行的长度恰好相等。您也许已经注意到了,两端对齐文本在打印领域很常见。不过在 CSS 中,还需要多做些考虑。

要由用户代理(而不是 CSS)来确定两端对齐文本如何拉伸,以填满父元素左右边界之间的空间。例如,有些浏览器可能只在单词之间增加额外的空间,而另外一些浏览器可能会平均分布字母间的额外空间(不过 CSS 规范特别指出,如果 letter-spacing 属性指定为一个长度值,“用户代理不能进一步增加或减少字符间的空间”)。还有一些用户代理可能会减少某些行的空间,使文本挤得更紧密。所有这些做法都会影响元素的外观,甚至改变其高度,这取决于用户代理的对齐选择影响了多少文本行。

CSS 也没有指定应当如何处理连字符(注1)。大多数两端对齐文本都使用连字符将长单词分开放在两行上,从而缩小单词之间的间隔,改善文本行的外观。不过,由于 CSS 没有定义连字符行为,用户代理不太可能自动加连字符。因此,在 CSS 中,两端对齐文本看上去没有打印出来好看,特别是元素可能太窄,以至于每行只能放下几个单词。当然,使用窄设计元素是可以的,不过要当心相应的缺点。

注1:CSS 中没有说明如何处理连字符,因为不同的语言有不同的连字符规则。规范没有尝试去调和这样一些很可能不完备的规则,而是干脆不提这个问题。

2.text-align-last 属性

text-align-last 属性规定如何对齐文本的最后一行。

请注意,text-align-last 属性设置的是被选元素内的所有最末行。所以,如果一个 <div> 中有三个段落,text-align-last 会应用于每段的最后一行。如需在容器中的最后一段上使用 text-align-last,您可使用 :last child,请看下面的例子。

注释:在 Edge/Internet Explorer 中,text-align-last 属性仅适用于具有 "text-align: justify" 的文本。

CSS 语法

属性值

描述
auto 默认值。每一行的对齐规则由 text-align 的值来确定。当 text-align 的值是 justify,text-align-last 的表现和设置了 start 的表现是一样的。
left 最后一行向左对齐。
right 最后一行向右对齐。
center 最后一行居中对齐。
justify 最后一行文字的开头与内容盒的左侧对齐,末尾与右侧对齐。
start 最后一行在行起点对齐。如果 text-direction 为从左到右,则左对齐,如果 text-direction 为从右到左,则右对齐。
end 最后一行在行末尾对齐。如果 text-direction 为从左到右,则右对齐,如果 text-direction 为从右到左,则左对齐。
initial 将此属性设置为其默认值。参阅 initial
inherit 从其父元素继承此属性。参阅 inherit

实例

view {
      width: 100%;
      text-align: justify;
      text-align-last: justify;
}
上一篇下一篇

猜你喜欢

热点阅读