【问题标题】:Text inside of <li> tag goes out of screen<li> 标记内的文本超出屏幕
【发布时间】:2016-02-05 20:06:50
【问题描述】:

我在 &lt;li&gt; 标记中有一些长文本,当屏幕变窄时它会超出屏幕。

我已尝试使用 width: 100%; 更正此问题,但没有任何反应。此外,文本不应该有固定的宽度,它必须是响应式的。

这是我的代码结构:

<div class="absolute-pos inline-block">
  <li>
      <div>
      <span>
          some really really loooonnnnggg teeeeeexxxxttttt hheeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeerrrreeeee
      </span>
      </div>
  </li>
</div>

.absolute-pos {
  position: absolute;
}
.inline-block {
  display: inline-block;
}

jsfiddle:https://jsfiddle.net/xLm5hL3w/

【问题讨论】:

  • 我知道,但它必须在那里,这只是我布局的一部分。
  • 添加 CSS 规则:word-break: break-word;

标签: html css


【解决方案1】:

您有多种选择。这是我想到的第一个:

第一个是width:100%; overflow:hidden;。这将“剪切”任何超出页面边缘的文本。

https://developer.mozilla.org/en-US/docs/Web/CSS/overflow

第二个是word-break:break-all;。这允许您的文本在任意两个字母之间换行。

https://developer.mozilla.org/en-US/docs/Web/CSS/word-break

第三个——也是我推荐的——是&lt;wbr&gt; 标签。这告诉浏览器在哪里“允许”在长词中放置中断。如果不需要分词,则不会,不像&lt;br&gt; 或空格字符。

https://developer.mozilla.org/en-US/docs/Web/HTML/Element/wbr

第四个是text-overflow 属性。这让您可以更细致地控制文本过长时的显示方式,但不会影响换行。

https://developer.mozilla.org/en-US/docs/Web/CSS/text-overflow

第五个是&amp;shy; 特殊字符。这告诉浏览器它可以分词并使用连字符将其换行到下一行。与&lt;wbr&gt; 一样,仅在必要时应用。

Soft hyphen in HTML (<wbr> vs. &shy;)

第六个是word-wrap:break-word;。这告诉浏览器它可以打破任意两个字母之间的长词。这是一个比word-break 更好的选择,因为它告诉浏览器在任何两个字母之间进行中断,而不受限于长词。 (这两个是不同的东西让我发疯了。)

https://developer.mozilla.org/en-US/docs/Web/CSS/word-wrap

【讨论】:

  • word-wrapwhite-space 添加到您的列表中。
  • 谢谢!我添加了word-wrap。我不认为white-space 在这里有用,因为只有在他们要在他的长词中添加中断/空格时才能使用它,这似乎是他们希望避免的。
猜你喜欢
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 2020-05-12
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
相关资源
最近更新 更多