【问题标题】:Is there any way that white-space: nowrap should show only single dot (.)有什么办法可以让 white-space: nowrap 只显示单点 (.)
【发布时间】:2020-10-21 13:20:15
【问题描述】:

我希望white-space: nowrap 在文本较长时仅显示单个点

例如文本是This is a very long text,我想显示This is.而不是This is...

当前片段如下所示

   <div>
       <div>This is a long text</div>
       <svg></svg>
   </div>

【问题讨论】:

  • 那将是text-overflow: ellipsis 的结果,而不是white-space: nowrap
  • 如果是固定宽度,你可以使用带有内联块的伪元素

标签: css


【解决方案1】:

text-overflow CSS property 允许您提供一个字符串,用于在溢出时向用户发出附加内容的信号。我认为这将实现您正在寻找的东西。

text-overflow: "."

重要的是,这个功能只在firefox 9+上可用。

【讨论】:

  • 对此的支持是terrible
  • @Donut 当我在 chrome 浏览器中应用它时,它给了我错误invalid property value
  • 是的,根据@Daniel_Knights 的评论,这显然在 Firefox 之外不受支持,因此它可能不是最佳解决方案。
【解决方案2】:

一种选择是在包含的 div 上使用 display: flex::after

span {
  margin: 0;
  max-width: 45px;
  overflow: hidden;
  white-space: nowrap;
}

.container {
  display: flex;
}

.container::after {
  content: '.';
}
<div>
  <div class="container">
    <span>This is a long text</span>
  </div>
  <svg></svg>
</div>

不理想,但它有效。

【讨论】:

  • div里面没有p标签:/
  • 你能发布一些代码吗?同样的想法应该适用于标签
  • &lt;svg&gt; 有点复杂。如果可能,我建议将文本包装在 &lt;span&gt; 中。查看我的编辑
  • 文本太短溢出怎么办?
  • @SalmanA 是的,你必须知道它是否会溢出
猜你喜欢
  • 1970-01-01
  • 2015-09-11
  • 2014-04-03
  • 2012-03-24
  • 1970-01-01
  • 2017-11-29
  • 1970-01-01
  • 1970-01-01
  • 2016-08-05
相关资源
最近更新 更多