Html 有没有一种方法可以在文本前的空格下划线

Html 有没有一种方法可以在文本前的空格下划线,html,Html,考虑以下代码: <u> test </u> 测试 这只在测试后而不是测试前加上测试+空格。为什么会这样?我怎样才能使它也在第一个空格下面划线 <u>&nbsp;test&nbsp;</u> 您可以在上阅读有关空格折叠(或删除)方式的所有信息,这是因为所有空格都将折叠为单个空格。尝试删除标记前面的所有空白。大概是这样的: Some<span style='text-decoration: underline;'>

考虑以下代码:

<u> test </u> 
测试
这只在测试后而不是测试前加上测试+空格。为什么会这样?我怎样才能使它也在第一个空格下面划线

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


您可以在

上阅读有关空格折叠(或删除)方式的所有信息,这是因为所有空格都将折叠为单个空格。尝试删除
标记前面的所有空白。大概是这样的:

Some<span style='text-decoration: underline;'> underlined </span>text<br>
一些带下划线的文本
还有一个示范:


顺便说一句,您应该使用css来实现样式化,而不是标记。该行为取决于浏览器(Chrome在单词后的空格处加下划线),并且在规范中似乎没有规定。元素内容被解析并存储到DOM中,其中包含空格,但它可能不参与下划线之类的操作

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

设置
空白:在未来的浏览器中,pre
似乎会导致下划线,尽管没有逻辑上的理由说明它应该这样做,也不能保证它会这样做。(请注意,将空白折叠到单个空间与渲染单个空间的问题截然不同。)

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

测试

这意味着更改元素内容。它不在空格字符下划线;相反,它们被更改为不同的字符,不带空格。@JukkaK.Korpela-
u{white SPACE:pre;}
如何更改内容?将空格更改为
(给出的第一个答案)显然会更改内容。@JukkaK.Korpela。但是,我的答案包括一个替代选项,如您所见,该选项没有。链接到css3规范:
Some<span style='text-decoration: underline;'> underlined </span>text<br>
<span style="border-bottom: solid 1px"> test </span>