- android - 多次调用 OnPrimaryClipChangedListener
- android - 无法更新 RecyclerView 中的 TextView 字段
- android.database.CursorIndexOutOfBoundsException : Index 0 requested, 光标大小为 0
- android - 使用 AppCompat 时,我们是否需要明确指定其 UI 组件(Spinner、EditText)颜色
我喜欢正确显示电子邮件,意思不是 [at]。为了对抗机器人,我反转了 html 中的文本,然后使用 direction: rtl
通过 css 重新反转它。 .多年来一直很好用,直到一封电子邮件敢于打破行。
您可以在屏幕截图上看到发生了什么;有点难以解释——
http-host 总是相同的,所以我想使用 text-overflow: ellipsis
连同 white-space: nowrap
和 overflow: hidden
在 <a>
上.那也向南走;
(旁注:我无法完全突出显示可见文本?)(亮点的结尾不是框的结尾!)
好的;文本溢出剪裁先出现,然后是反转;我得到它。所以让我们把overflow: hidden
和 text-overflow: ellipsis
在父级上,这是一个 <p>
和 white-space: nowrap
在 a
上(怕电话号码被砍掉)
我尝试了一个组合,哪些样式转到 p
以及a
.. 我有一个解决方案(不幸的是我无法重现 oO),其中点位于右侧(这是我想要的)但文本仍然被结果的视觉左侧切掉,这意味着名称电子邮件的名称,我不想剪辑!
长问短..我怎样才能得到以下结果? S.Rossa@park-reside...
当我的电子邮件标记如下所示时:
<a href="/email.php?to=rossa" class="direction">
<?php echo strrev("S.Rossa@park-residenz-alfeld.de"); ?>
</a>
出于多种原因,我无法从 direction: rtl
返回电子邮件中的内容。
建议方法时请记住这一点
无论如何不要让电子邮件断行
以及用 ... 剪辑它的便捷方式
仅使用 CSS
谢谢!
最佳答案
浏览器被赋予一个字符串。当您告诉它缩小它并用 ellipsis
替换不适合的内容时,它总是会从字符串的末尾开始剪切。它不知道您的字符串被颠倒了,当您告诉它时它会信任您:这个字符串应该从右到左阅读 (direction:rtl
)。尽头在左侧。
因此,仅使用 CSS,您可以获得的最接近(也是最体面)的东西是从左侧剪切并将 ellipsis
放置在剪切处:
a.direction {
direction: rtl;
overflow: hidden;
text-overflow: ellipsis;
white-space: nowrap;
/* proof of concept: */
width: 25%;
display: inline-block;
}
<a href="/email.php?to=rossa" class="direction">‮ed.dlefla-znediser-krap@assoR.S</a>
您现在有两个选择。要么
text-overflow: ellipsis
并使用 JavaScript 伪造它(可行,但很丑陋)或...direction: rtl
(这实际上是一个技巧,它不正确并且是问题的根源)。当然,您需要确保只对浏览器执行此操作,而不是对机器人执行此操作。最简单的方法是检查 navigator.userAgent
:if (!/bot|crawler|spider|crawling/i.test(navigator.userAgent)) {
var directions = document.querySelectorAll('.direction');
for (var i = 0; i < directions.length; i++ ) {
directions[i].textContent = directions[i].textContent.split('').reverse().join('');
}
}
a.direction {
overflow: hidden;
text-overflow: ellipsis;
white-space: nowrap;
max-width: 25%;
display: inline-block;
}
<a href="/email.php?to=rossa" class="direction">ed.dlefla-znediser-krap@assoR.S</a>
但是,navigator.userAgent
是不可信的,因为恶意机器人永远不会将自己声明为机器人。因此,您可能希望使用更安全的方法来排除机器人程序,例如指向将为它们设置 session 变量的 php
脚本的链接(只能由机器人程序单击)。如果设置了变量,只需将一个不可见元素添加到您的页面,并在上面的 JavaScript 中检查添加的元素,而不是检查 navigator.userAgent
。
如果您希望电子邮件被某些搜索引擎正确编入索引,则应将它们排除在此检查之外。
关于html - 文本溢出 : ellipsis fighting with direction: rtl,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/38859590/
我的文本溢出有问题:省略号 - 它不想与我的网站一起使用。我目前正在学习并且我有这个元素,其中我有带有固定高度文本的 div。我试过 text-overflow: ellipsis 但我似乎无法让它工
这个问题在这里已经有了答案: Limit text length to n lines using CSS (18 个答案) 关闭 10 年前。
我无法得到“文本溢出:省略号;”上类...也许有人可以在这方面给 ma 一些帮助:-) 小例子: http://jsfiddle.net/qKS8p/2/ http 标记: …
我试图强制将一个小 div 中的段落全部排成一行,不换行,并且当它们溢出 div 时用省略号截断。 我使用 white-space:nowrap; 时没有换行,但即使我已将 text-overflow
如何让我的文本填充 的空间标签,然后用省略号将其截断? 您可以在此处查看用于填充文本的“卡片”示例。该卡片的高度固定,为 150 像素,内边距为 20 像素。段落元素在卡片内仅具有固定的空间量,并且
这个问题在这里已经有了答案: Prevent content from expanding grid items (3 个答案) 关闭 3 年前。 当使用 CSS 网格时,我似乎无法使 text-o
以下 fiddle 正确淡出文本,但省略号仍然不透明。 http://jsfiddle.net/Wexcode/TJ7A9/ Incorrect #incorrect { widt
默认情况下,如果我们有 'text-overflow: ellipsis',省略号会在文本中添加 '...',但我的场景需要通过 两颗星 * *。 纯 CSS 如何实现? 注意:需要支持IE9+、ch
如何知道字符串的省略子串和可见子串? fiddle :https://jsfiddle.net/dyfkqhk4/1/ 我想知道: 原始文本:这是一些省略的文本 可见文本:这是 省略文本:一些省略文本
我有这样的东西: text text text text text text div{ width:100px; border: 1px solid black;
这个问题在这里已经有了答案: Fast punctuation removal with pandas (4 个答案) 关闭 4 年前。 我正在使用这段代码,但它不会删除“省略号”: Column
这是例子 #div2 { white-space: nowrap; width: 12em; overflow: hidden; text-overflow: ellipsis;
我有以下 html - http://jsfiddle.net/o8e4n30n/ 14 Cras justo sto odio asdasda sdas
我有一个移动网站的顶部栏,如下所示: 用户可以通过单击他/她的名字来打开个人菜单。当人名很长(蓝色条)时,我想使用 text-overflow: ellipsis 来缩短它。 我让它工作(看起来像蓝色
是否可以在 text-overflow: ellipsis 上设置点的样式? 一个例子是将省略号加粗,例如“Lorem Ips ...” 最佳答案 灵感来自 this answer , 这是一种设置省
我有一个包含一些内部内容的 div,当它溢出时我需要一个省略号。我已经在其他元素上多次执行此操作,但出于某种原因,这并没有达到预期的效果。 此外,我故意留下 white-space:nowrap; 因
在闲逛命名空间时,我注意到一个名为Ellipsis 的奇怪对象,它似乎并没有什么特别之处,但它是一个全局可用的内置函数。 经过搜索,我发现 Numpy 和 Scipy 在切片语法的一些晦涩变体中使用了
这个 CSS: text-overflow: ellipsis; 发生溢出时将 "StartOfLineMiddleOfLineEndOfLine" 更改为 "StartOfLineMiddleOfL
我想在文本上实现showMore类型的文本来代替ellipsis or fade。就像我们可以通过React https://www.npmjs.com/package/react-show-more
我需要一行带有图标的文本,并且如果该行太长,则应以省略号(...)结束。 Breaking to the right 这是我的代码: Flexible _buildAddress() { retu
我是一名优秀的程序员,十分优秀!