使用“文本缩进”隐藏文本
我试图通过设置 text-indent: -999px;
使用 CSS 隐藏
元素内的一些文本。由于某种原因,当我将文档的方向设置为“rtl”(从右到左 - 我的网站是希伯来语)时,这不起作用。
当方向为“rtl”时,文本仍然显示...
有人知道为什么,以及解决这个问题的方法吗?
I'm trying to hide some text inside an <li>
element using CSS by setting text-indent: -999px;
.
For some reason this doesn't work when I set the direction of the document to "rtl"
(right to left - my site is in Hebrew).
When direction is "rtl" the text still shows...
Anyone knows why, and a way around this?
如果你对这篇内容有疑问,欢迎到本站社区发帖提问 参与讨论,获取更多帮助,或者扫码二维码加入 Web 技术交流群。
绑定邮箱获取回复消息
由于您还没有绑定你的真实邮箱,如果其他用户或者作者回复了您的评论,将不能在第一时间通知您!
发布评论
评论(11)
与
text-indent: -9999px
一起尝试使用display: block;
。它为我解决了。此外,如果您需要 li 元素水平浮动(例如水平菜单),请使用
float: left;
。Along with
text-indent: -9999px
try usingdisplay: block;
. It solved for me.Additionally, if you need the li elements to float horizontally (e.g. a horizontal menu), use
float: left;
.在您尝试提供负
text-indent
的元素上设置direction:ltr
怎么样?演示: jsfiddle.net/Marcel/aJBnN/1/
What about setting
direction:ltr
on the elements you're trying to give negativetext-indent
?Demo: jsfiddle.net/Marcel/aJBnN/1/
我的问题是文本对齐。如果您修改元素或将其向左包裹的父元素的对齐模式,则必须为文本缩进提供负索引。否则你必须给出一个正值。
否则
My problem was with text-align. In case you modify align mode of the element or parent element(s) wrapping it to left, you must give a negative index for text-indent. Otherwise you must give a positive value.
Otherwise
尝试设置文本对齐方式以匹配文本缩进的方向。
例如,如果您使用LTR并希望负缩进文本,除了添加display:块之外,还应该添加左对齐。
不确定 RTL,但似乎合乎逻辑,您应该积极缩进并使用右对齐。
Try setting text-alignment to match the direction in which you are indenting text.
For example, if you use LTR and want to indent text negatively, besides adding display: block, you should also add left alignment.
Not sure for RTL, but seems logical you should indent it positively and use right alignment.
我发现最好的方法是将文本设置为透明颜色:
color: rgba(0,0,0,0);
注意:
此错误在 Firefox 12 中仍然存在(在 RTL 上忽略文本缩进值)
I found the best way is to make the text a transparent color:
color: rgba(0,0,0,0);
Note:
This bug still exists in firefox 12 (text-indent value is ignored on rtl)
或者
or
我更喜欢这个解决方案:
I prefer this solution:
您可以使用 line-height 指定一个较大的值,例如 30 像素高的容器为 100 像素。
仅当您的容器尺寸有限时才有效。如果还没有,您可能需要专门设置高度。
You can use line-height specifying a large value, say 100px for a 30px high container.
only works if your container is limited in size. you may have to specifically set height if it isn't yet.
text-indent: -99px
是一个老把戏,这不是隐藏文本的最佳方式。为什么不使用visibility:hidden
来代替呢?The
text-indent: -99px
is an old trick, which is not the optimal way to hide text. Why not usevisibility:hidden
instead?文本对齐:右对齐;为我工作
text-align: right; works for me
添加溢出隐藏然后它就可以正常工作了。
Add overflow hidden then it will work fine.