Javascript 我不知道';我不希望逗号后的空格是固定宽度的-最佳做法?

Javascript 我不知道';我不希望逗号后的空格是固定宽度的-最佳做法?,javascript,html,css,fixed-width,monospace,Javascript,Html,Css,Fixed Width,Monospace,我正在创建一个网站,其中主要标题以固定宽度字体显示(设计师的选择,而不是我的选择)。但是对于包含逗号的标题来说,这看起来很奇怪——逗号后面还有大量的空格 所以我想知道如何缩小这个空间,使事物看起来更自然一些 一个简单的解决方案是,我的PHP后端将所有出现的逗号后跟空格替换为逗号后跟A(此解决方案有效)。但我有点不情愿——它似乎在错误的地方解决了问题。e、 g.如果字体后来更改为非固定宽度的字体,但新开发人员不知道如何搜索后端以删除插入的精简空间,会发生什么情况 那么“正确”的方法是什么呢?正确

我正在创建一个网站,其中主要标题以固定宽度字体显示(设计师的选择,而不是我的选择)。但是对于包含逗号的标题来说,这看起来很奇怪——逗号后面还有大量的空格

所以我想知道如何缩小这个空间,使事物看起来更自然一些

一个简单的解决方案是,我的PHP后端将所有出现的逗号后跟空格替换为逗号后跟A(此解决方案有效)。但我有点不情愿——它似乎在错误的地方解决了问题。e、 g.如果字体后来更改为非固定宽度的字体,但新开发人员不知道如何搜索后端以删除插入的精简空间,会发生什么情况

那么“正确”的方法是什么呢?

正确的方法是使用看起来不奇怪的字体。完全可以设计一种固定宽度的字体,除了逗号后的空格较窄之外。显然,设计师没有使用(或创造)一个

除了使用一种不会出现这种情况的字体,因为在CSS中没有办法说“显示比字体其余部分小的空间是X”(至少在没有标记隔离该空间的情况下),您必须调整字符串,这意味着如果更改字体,您还必须更改其他内容。无论其他东西是PHP还是JavaScript都无关紧要,船已经开航了。:-)

还要注意的是,设计师似乎出于某种原因使用了固定宽度的字体。如果将逗号后的空格改为不完全固定宽度,则可能会干扰原因


我会留下一个完整的空间。这是设计师的问题,而不是你的问题。

如果你想以一种将其保留在CSS中的方式来处理这一问题,在评论中,但没有将其作为答案发布:使用PHP或JavaScript替换逗号后的空格,但替换为如下内容:

<span class="space-after-comma"> </span>

然后CSS可以驱动如何处理这些空间——不管怎样,让它们变得更窄。这样,更改字体和逗号后的
.space
空格的处理都是CSS层的更改,而不是PHP或JavaScript层的更改



(威尔:如果您将您的评论作为答案发布,请@me,这样我就可以删除此社区wiki答案。)

没有任何东西可以阻止您单独设置空白:

h1{
字体系列:monospace;
}
.短空间{
字母间距:-.33em;
}

哲学、政治和经济
您可以通过Javascript、regex删除空格
innerHTML.replace(/,\s+/,',')
对我来说并不奇怪,除了缺少逗号(我是牛津逗号人)之外。一个解决方案是用正则表达式替换逗号,后跟空格。这样可以控制逗号后的渲染空间。@Will:这是个好主意。您甚至不必使用
。它仍然使用PHP或JavaScript来调整字符串,但调整的内容被转移到CSS中。非常聪明,我认为这是一个答案。