【问题标题】:Text-align:justify only works on indented (complicated) HTML code, not on HTML code without whitespacesText-align:justify 仅适用于缩进(复杂)的 HTML 代码,不适用于没有空格的 HTML 代码
【发布时间】:2015-08-08 07:38:48
【问题描述】:

我正在维护一个在线报纸编辑器,我偶然发现了一个奇怪的问题,其中文本不希望使用 text-align:justify 来对齐。经过几个小时的调试,我注意到它可能与输出的 HTML 缩进有关(这对我来说听起来很奇怪)。

显然我的编辑器页面的原始 HTML 输出没有缩进,但文本字段的基本结构如下:

<div>
  <p>
    <span>
      <span>
        <span>
          Hello&nbsp;
        </span>
      </span>
    </span>
    <span>
      <span>
        <span>
          World.
        </span>
      </span>
    </span>
  </p>
</div>    

每个单词都包含在 3 个 span 中(由 JS/jQuery 渲染,用于浏览器之间的样式、字体和一致性),我将 text-align:justify; 放在 &lt;p&gt; 元素中。

以下是一些示例代码: https://jsfiddle.net/tdje0a9L/

如您所见,文本不合理。

但是现在,当我缩进完全相同的 HTML 代码时,它变得合理:
https://jsfiddle.net/3v7vk24d/

我不能对多跨度包装做太多事情,这就是编辑器的工作方式。

现在是我的问题:

  • 有没有办法让输出的 HTML 缩进?

    (使我的文字合理)

  • 还有其他方法可以使我的文本合理吗?

【问题讨论】:

    标签: css html text-align justify


    【解决方案1】:

    这是因为您的源代码中有&amp;nbsp;(不间断空格)实体 - 这意味着您的代码确实没有单词之间的空格。

    所以对于text-align: justify,它似乎是一个词。

    您的示例将打印:Donec quam felis 作为一个单词

    您可以在此问题中查看有关如何删除不需要的实体的更多信息:How to remove &nbsp; from the end of spans with a given class?

    【讨论】:

    • 感谢您的回答!此解决方案有效。但是,在&lt;span&gt; 上使用了display:inline-block,如果我用常规空格替换nbsp;,所有单词都会被粘在一起。我想我会删除内联块并希望它不会打破任何东西:)
    猜你喜欢
    • 2017-05-23
    • 1970-01-01
    • 2023-04-08
    • 1970-01-01
    • 2017-04-09
    • 2017-09-16
    • 1970-01-01
    • 2021-09-25
    相关资源
    最近更新 更多