Html 如何忽略Google Chrome中右对齐表格行中多余的空白?

Html 如何忽略Google Chrome中右对齐表格行中多余的空白?,html,css,google-chrome,html-table,right-align,Html,Css,Google Chrome,Html Table,Right Align,我有一个在服务器端生成的带有右对齐单元格的表。 单元中的每一行都是可选的,因此它被封装在服务器端的if-then语句中 示例html显示了3列,其中第一列在Google Chrome中有错误。第2列和第3列是正确的,但很奇怪,因为html是相同的,除了换行符和空格 当我们查看Google Chrome中的第一列时,您会注意到单元格中每行的右边距并不是100%对齐的 这个问题在Firefox或IE中并不存在,只在Google Chrome中存在 <!DOCTYPE html PUBL

我有一个在服务器端生成的带有右对齐单元格的表。 单元中的每一行都是可选的,因此它被封装在服务器端的if-then语句中

示例html显示了3列,其中第一列在Google Chrome中有错误。第2列和第3列是正确的,但很奇怪,因为html是相同的,除了换行符和空格

当我们查看Google Chrome中的第一列时,您会注意到单元格中每行的右边距并不是100%对齐的

这个问题在Firefox或IE中并不存在,只在Google Chrome中存在

    <!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
    <html xmlns="http://www.w3.org/1999/xhtml">
    <head>
    </head>
    <body>
        <table border="0" cellpadding="0" cellspacing="0" style="border: 1px solid #000000;">
            <tbody>
                <tr>
                    <td style="text-align: right;border: 1px solid #000000;">
                        <span>Not Ok in Google Chrome</span>
                        <br /><span id="C1">500.000,00 €</span>
                        <br /><span id="C2">166.666,67 €</span>
                        <br /><span id="C3">489.545,90 €</span>
                    </td>
                    <td style="text-align: right;border: 1px solid #000000;">
                        <span>Ok in Google Chrome</span><br />
                        <span id="D1">500.000,00 €</span><br />
                        <span id="D2">166.666,67 €</span><br />
                        <span id="D3">489.545,90 €</span>
                    </td>               
                    <td style="text-align: right;border: 1px solid #000000;">
                        <span>Ok in Google Chrome</span><br /><span id="D1">500.000,00 €</span><br /><span id="D2">166.666,67 €</span><br /><span id="D3">489.545,90 €</span>
                    </td>                       
                </tr>
            </tbody>
        </table>
    </body>
    </html>

在谷歌浏览器中不正常

500.000,00欧元
166.666,67欧元
489.545,90欧元 谷歌Chrome中的Ok
500.000,00欧元
166.666,67欧元
489.545,90 € 谷歌Chrome中的Ok
500.000,00欧元
166.666,67欧元
489.545,90欧元
以不同的方式生成html不是一个选项


我如何在Google Chrome中实现这一点,不是通过更改html,而是通过设置额外的样式或其他方式?

因为每个浏览器都以不同的方式处理html(请参见怪癖模式),您需要使用CSS来更改页面的样式。为了保持所有(或尽可能多的)相同的外观,我建议从像Eric Meyer那样的CSS重置开始。然后,您可以根据需要设置样式。

只需更改HTML即可

这有多难?为什么你不能改变它

这可以在不改变HTML的情况下工作,但有点傻:

td span {
    display: block
}
td br {
    display: none
}
您的原始代码:

使用我的修复:

即使使用CSS重置,问题仍然存在。指出我应该设置什么类型的样式将是对我的问题的一个很好的回答。好的,在不知道您正在使用的CSS的情况下,您可能需要的是有关单元格的“调整文本对齐”属性。但是,您也将受到填充的影响,因此可能需要进行调整。W3在这里有很多关于表格的文档:这个问题包含了所有你需要重新处理的问题,所以你不需要知道更多关于CSS.Odd的信息。BR之前的回车符似乎被认为是重要的空白,因此被包含为文字空间。我想这就是为什么它会起作用(因为块级元素之间的空白变得无关紧要),但我想不出为什么会这样,我很有信心地说,我不认为会有一个简单的CSS方法来消除它。我无法更好地表述它。一个BR被认为是一个重要的空白,因此包含在文字空间中,对我来说,它听起来像Google Chrome渲染引擎中的一个bug。否?@Linefeed:我同意,这里有一个类似的bug报告: