欢迎各位兄弟 发布技术文章

这里的技术是共享的

You are here

text-indent:-9999px隐藏文字为何失效

"text-indent:-9999px隐藏文字为何失效":
 
关键词text-indent 9999px 隐藏 文字 为何 失效
 

 

用背景background来显示图片,需要隐藏文字,设置text-indent:-9999px;为何没有效果?

<div class="remksz msstar" title="good">abcdefghi</div>

css:

.remksz {height:12px;width:64px;display:inline; margin-right:10px; text-indent:-9999px; vertical-align:middle;}
.msstar {background:transparent url(images/remark.gif) no-repeat scroll 0 -84px;}

 

原来问题出在display:inline;上,text-indent 仅仅对 block, table cells, inline block才有效果,而且text-align:left;才有效果。对inline的元素没有效果。

改为display:inline-block;问题解决。

可惜浏览器对inline-block的支持不好,firefox3,ie8支持,opera、safari也支持,其他的就不支持了。

ie6. ie7下使用貌似会有些效果,但其实使用display:inline-block在ie下会触发layout(如果你对layout感觉到陌生,可以参看old9翻译的《on having layout》),从而使内联元素拥有了display:inline-block属性的表征。inline-block是将对象呈递为内联对象,但是对象的内容作为块对象呈递。旁边的内联对象会被呈递在同一行内,允许空格。


 
搜索此文相关文章:text-indent:-9999px隐藏文字为何失效
 
此文链接:http://www.makaidong.com/%E5%8D%9A%E5%AE%A2%E5%9B%AD%E7%9F%A5%E9%81%93/21947.shtml
 
转载请注明出处:text-indent:-9999px隐藏文字为何失效 - 博客园

来自 http://www.makaidong.com/%E5%8D%9A%E5%AE%A2%E5%9B%AD%E7%9F%A5%E9%81%93/21947.shtml

刚才给几个链接加了class,里面定义了text-indent: -9999px,但是却发现毫无作用,链接的文字说明依然存在。奇怪之下换成text-indent: 9999px,发现有效,但是会出现横向滚动条,再换成负值,再次无效……请教这是为何?

那链接href不是指向常规链接,而是javascript:SetFont('12px') 难道是这个原因?
 
 
 
 
回复

使用道具 举报

  
wouivkyi

高级会员

沙发2#
 
  楼主| 发表于 2010-4-28 14:56:01 | 只看该作者 |楼主
忘了补充了。CLASS里已经定义了display: inline-block;宽高也已经都定义了。
 
 
 
 
回复 支持 反对

使用道具 举报

  
Tuan

高级会员

藤椅3#
 
 发表于 2010-4-28 16:38:59 | 只看该作者
text-indent配合display:block;才稳妥,inline-block容易出问题
 
 
 
 
回复 支持 反对

使用道具 举报

  
kylinwy

中级会员

板凳4#
 
 发表于 2010-4-29 14:26:07 | 只看该作者
你肯定是忘了写overflow:hidden;就是让溢出部分隐藏了
 
 
 
 
回复 支持 反对

使用道具 举报

  
km268

版主

报纸5#
 
 发表于 2010-4-29 14:53:55 | 只看该作者
加上display:none試試
 
 
 
 
回复 支持 反对

使用道具 举报

  
cailei876

初级会员

地板6#
 
 发表于 2010-4-29 15:22:53 | 只看该作者

回复 1# wouivkyi [楼主] 的帖子

没有加overflow:hidden;吧
 
 
 
 
回复 支持 反对

使用道具 举报

  
wouivkyi

高级会员

7#
 
  楼主| 发表于 2010-4-29 15:31:48 | 只看该作者 |楼主
问题在于,为何负值无效?9999px是有效的,-9999px就毫无作用。

而且恐怕也不是inline-block的问题,因为我之前有一个链接按钮就是这么写的,完全一样的CSS代码,那个就没有任何问题。
 
 
 
 
回复 支持 反对

使用道具 举报

  
bluechen

新手上路

8#
 
 发表于 2010-4-29 19:58:26 | 只看该作者
display:block
overflow:hidden;
text-indent:-9999px;

或者,高度固定的话
display:block;
overflow:hidden;
line-height:9999px;
 
 
 
 
回复 支持 反对

使用道具 举报

  
angell8684

金牌会员

9#
 
 发表于 2010-5-4 11:17:37 | 只看该作者
有时是 text-align:造成的...   
某些情况下只要加个 text-align:left; 即可
 
 
 
 
回复 支持 反对

使用道具 举报

  
wouivkyi

高级会员

10#
 
  楼主| 发表于 2010-5-6 16:27:26 | 只看该作者 |楼主
原帖由 [i]angell8684 于 2010-5-4 03:17 发表 
有时是 text-align:造成的...   
某些情况下只要加个 text-align:left; 即可

正解。说到点子上了,果然加了个text-align:left之后就有效果了。另外inline-block好像确实有点问题。

来自 http://bbs.blueidea.com/thread-2982479-1-1.html

普通分类: