【发布时间】:2012-04-17 18:03:53
【问题描述】:
看看下面的小提琴:
当您的图像带有包含在锚点/链接中的文本时,图像和代码中的文本之间的空白会在呈现的页面中文本之前创建一个带下划线的空白。
当没有图像时,即使代码中有空格,也没有带下划线的空格。
我可以看到避免这种带下划线的空格的唯一方法是消除我的代码中的空格。但我讨厌改变我的编码风格以改变渲染页面的呈现方式。无论如何,为了操纵页面的呈现而改变您的 HTML 无论如何都是错误的。这就像使用换行符 (<br/>) 在元素之间添加空格而不是使用 CSS。
是否有一个对我来说不太明显的 CSS 属性可以用来解决这个问题?
更新 出于某种原因,人们对我在代码中的图像边框和边距感到困惑。我只是把它们放在那里让它看起来不错。它们与问题无关,因此我删除了它们并更新了小提琴,以便人们更清楚地了解问题所在。
【问题讨论】:
-
当我在 Chrome 中查看它们时,它们都有下划线的空白。
-
@Diodeus - 他专门指的是第一个例子。您可以看到下划线是如何在
U之前稍微延伸的。我同意这会让我发疯,因为他正在创建易于阅读的 html,并因他的布局改变而受到惩罚。 -
这不是完全重复的,因为
white-space-collapse: discard;在这种情况下似乎没有效果。 -
@Jakobud - 如果您阅读那里的答案,您会看到
white-space-collapse: discard;尚未被任何浏览器实现(这就是它不起作用的原因)。最新的规范现在已将其重命名为text-space-collapse:trim-inner(仍未实现)。这个 SO 问题也涉及到为什么会发生这种情况以及围绕它进行编码的方法(所有这些似乎都很糟糕)。所以我同意它不能解决你的问题,但我仍然认为它是重复的。