CSS覆盖text-overflow: ellipsis

3
默认情况下,如果我们使用“text-overflow: ellipsis”,省略号将自动添加到文本中,但我的情况需要通过“两个星号”* *来覆盖此设置。如何在纯CSS中实现这一点?
注意:它应该支持所有浏览器,如IE9+和chrome。
一些人们要求添加示例,可以参考以下链接: http://www.w3schools.com/cssref/tryit.asp?filename=trycss3_text-overflow

为了做到这一点,您需要使用JavaScript。纯CSS无法实现。 - priya_singh
你能否发布你的代码? - Nenad Vracar
@NenadVracar:添加了示例 - Jayamurugan
这并不完全像CSS的省略号功能那样工作,但它可以给你一个创建类似东西的提示:https://jsfiddle.net/dekelb/vuxfk0hk/ - Dekel
你应该只需指定一个字符串作为 text-overflow,但浏览器支持程度有所不同。在Vivaldi中它不起作用。 - GolezTrol
显示剩余4条评论
1个回答

5
你可以使用伪元素,例如:after,来应用一个技巧。
看一下下面的片段:

#div1 {
  position: relative;
  white-space: nowrap; 
  width: 99px; 
  overflow: hidden;
  text-overflow: ellipsis; 
  border: 1px solid #000000;
}

#div1:after {
  content: '**';
  position: absolute;
  top: 50%;
  right: 0;
  transform: translateY(-50%);
  background: #fff;
  padding: 0 2px 0 0;
}
<p>This div uses "text-overflow:ellipsis":</p>
<div id="div1">This is some long text that will not fit in the box</div>

希望这可以帮助你!

更改宽度:99像素;字符被切成一半。 - Jayamurugan
@LearnReact 已更新答案。现在可以尝试一下了。 - Saurav Rastogi
抱歉兄弟,你能检查一下 width: 89px; 是否有问题吗? - Jayamurugan
":after" 伪类与省略号不同,你需要检查是否有足够的内容来截取并显示省略号,而这不能通过 ":after" 伪类实现。 - Dekel
@LearnReact 我同意Dekel的观点。这并不会像省略号一样起作用。这只是一个覆盖省略号的技巧。 - Saurav Rastogi
不错的尝试!不幸的是,在选择文本时它的行为很奇怪。人们应该始终考虑是否值得因特定的样式特性而降低用户体验。 - GolezTrol

网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接