有没有办法在文本之前加下划线空格

时间:2013-09-17 19:25:17

标签: html

请考虑以下代码:

<u> test </u> 

这只是测试+测试后的空间而不是之前的空间。为什么这样,我怎样才能让它在第一个空间下划线?

3 个答案:

答案 0 :(得分:8)

<u>&nbsp;test&nbsp;</u> 

或者

u {
    white-space:pre;
}

<强> jsFiddle example

您可以在http://www.w3.org/TR/CSS2/text.html#propdef-white-space

阅读有关如何折叠(或删除)空格的所有内容

答案 1 :(得分:2)

这是因为所有空格都会折叠成一个空格。尝试删除<u>标记前面的任何空格。像这样:

Some<span style='text-decoration: underline;'> underlined </span>text<br>

和示范:http://jsfiddle.net/8J2ZE/

你应该使用css来实现样式,而不是标记

答案 2 :(得分:1)

行为取决于浏览器(Chrome在单词后面加下划线)并且似乎没有在规范中规定。元素内容被解析并存储到包含空格的DOM中,但它可能不会参与下划线等。

使用无间隔空格而不是空格往往会导致下划线,但它会改变内容并产生副作用(例如,不间断空格会阻止前后的换行)。

设置white-space: pre似乎会导致下划线,但在未来的浏览器中,它没有合理的理由,也不能保证它会出现。 (请注意,将空格折叠到单个空间与渲染单个空格的问题完全不同。)

结论取决于背景和想要这种强调的原因。也许您可以使用底部边框(具有明确定义的渲染规则)而不是下划线 - 请注意边框位于较低位置,这可能适合也可能不适合(另一方面,您可以设置颜色,厚度和边框的样式)。如,

<span style="border-bottom: solid 1px"> test </span>