关于html中的文本节点问题

text-indent 属性规定文本块首行文本的缩进。(注意是首行文本)

关键字:块状元素下的文本,首行的缩进。所以span,b,a等等这些行内标签,在FF和手机浏览器下,text-indent无效的。

那么行内标签想缩进怎么办?

设定行内元素为块状元素:

  display:block/inline-block/inline-flex/box/list-item;

text-indent方法,对应的JS写法:

textIndent 属性缩进元素中的首行文本。(注意是首行文本)

Object.style.textIndent=length|%

text-align: justify; 

chrome浏览器下,当文本不需要居中,是左对齐,每行文字末尾总有一点点空隙。

一个盒子下有一段文字,这段文字左对齐,就算给这段文字加了p标签,设定了宽度,设置了 margin: 0 auto; 依旧有一点点偏差。这个时候用这个text-align: justify; 就可以解决这个问题。

这个属性也有它自己的问题:它会增加文字间距。限制在一定的p标签宽度内,这个文字间距看起来也没那么大。

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

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

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

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


还有一个办法,比如给包裹一段文字的P标签加设定宽度后,再设置左右间距 padding,chrome浏览器就不会看到有这个文字结尾的空隙。

    padding: .5em .4em;

 

posted @ 2017-04-06 09:51  kiera  阅读(790)  评论(0编辑  收藏  举报