显示背景隐藏文本 使用text-indent:-99999px 遇到的一些

来源:互联网 发布:windows git 环境变量 编辑:程序博客网 时间:2024/06/09 21:54

text-indent:-99999px 是个很常见的东西,将文字向前缩进,让普通用户看不到,而搜索引擎却能看到。

搜索引擎不像人,读不懂图片,所以网站的 Logo 搜索引擎是看不懂的,为了照顾它,开发者直接在一个 h1 标签里放上网站的标题给搜索引擎看,然后用 text-indent:-99999px 把文字对用户隐藏掉,然后用一张背景图片的 Logo 插入

最近做一个项目遇到类似的情况,需要使用背景图片做动画效果,但是需要隐藏文本,第一时间便想到了text-indent:-99999px ,

页面显示效果与DOM结构如下:


外层样式设置:


文本居中或靠左时都很完美,但是text-align:right靠右时,文本显现出来了,


这种时候,简直抓狂,各种吐血三升,从上到下一个一个试,到现在也没找出原因,如果哪位大神指导,还望留下指导意见,小女子拜谢。

项目等着上线,又不能改UI只有另想办法,换个思路最终目的是隐藏文本,基于这个根本目标又想到了另外的解决方案;

方案一:

使用overflow:hidden;完美隐藏background之上的字体
selector{

     line-height:0;
     font-size:0;
   overflow:hidden;

}

方案二:同样是使用overflow:hidden;但是这种方法并不适合所有场景,记得有这么个思路吧

selector {
  display:block;
  overflow:hidden;
  width:0;
  height:0;
}

其他:visibility:hidden; 和display:none;相对应,为隐藏的对象保留物理占位空间。

这个项目我采用的是是第一种方案,最终效果如下:


问题本身可能不是很难,解决的过程把自己困在如何设置text-indent的问题里面。

还是要跳出来找到最终的目的效果,转换思路