代码之家  ›  专栏  ›  技术社区  ›  Elias Zamaria

在标准模式下,当零宽度空间位于斜杠之前时,IE8会忽略零宽度空间

  •  6
  • Elias Zamaria  · 技术社区  · 17 年前

    对于IE6,我使用一些Javascript将字符替换为<wbr>tag——虽然不是最优雅的解决方案,但它确实有效。

    在IE8中,我还没有找到解决这个问题的实用方法。它弄乱了我桌子的布局。我发现它不仅仅局限于桌子。这似乎发生在任何一种元素上。浏览器拒绝确认ZWSP,而是选择让文本从框中流出,这看起来很难看。我已经注意到,我可以通过将它放入兼容性视图来让浏览器正确处理它,但这会给我带来其他问题。

    有没有人知道一种简单实用的方法可以让ZWSP按照IE8中的方式工作?

    您可以使用以下代码测试问题:

    <!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN"
        "http://www.w3.org/TR/html4/loose.dtd">
    <html><head>
    <title>zwsp test</title>
    </head>
    <body>
    <div style="width: 50px; border: solid black 1px; font-size: 15px">
        Miles&#8203;/gallon
    </div>
    </body></html>
    
    3 回复  |  直到 17 年前
        1
  •  4
  •   ferdley    17 年前

    我怀疑这可能是IE8中的一个bug。我可以诱导您想要的行为的唯一方法是将斜杠更改为除法斜杠(\u2215):

    Miles&#8203;&#x2215;gallon
    

    出于某种原因,IE8不喜欢斜线的近距离。

        2
  •  3
  •   eyelidlessness    17 年前
    <!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN"
        "http://www.w3.org/TR/html4/loose.dtd">
    <html><head>
    <title>zwsp test</title>
    <style type="text/css" media="screen">
        .zwsp {
            display: -moz-inline-box; /* Firefox before 3.0 */
            height: 1px; /* Firefox before 3.0 screws up line height */
            display: inline-block; /* Standards-based browsers (and IE!) */
            overflow: hidden; /* In most cases will prevent weird spacing due to font sizes */
            width: 1px; /* Must take up some space to appear in layout */
            margin-left: -1px; /* Cancel the space it takes up */
        }
    </style>
    </head>
    <body>
    <!-- Wide (without space) -->
    <div style="width: 100px; border: solid black 1px; font-size: 15px">
        Miles/gallon
    </div>
    <!-- Wide (with space) -->
    <div style="width: 100px; border: solid black 1px; font-size: 15px">
        Miles<span class="zwsp"> </span>/gallon
    </div>
    <!-- Narrow (with space) -->
    <div style="width: 50px; border: solid black 1px; font-size: 15px">
        Miles<span class="zwsp"> </span>/gallon
    </div>
    </body></html>
    

        3
  •  0
  •   shaosh    10 年前

    我看到同样的问题是IE11。@ferdley的解决方案是有效的,但是正则斜杠和&#x2215看起来略有不同。

    我的解决方案是在前一个和斜杠之间再加一个零宽度的空格,即。,

    Miles&#8203;&#8203;/gallon