• text-indent:-9999px 字体隐藏问题


      为什么要字体隐藏?

        通常为了传达更好的视觉效果,我们常用图片替代掉字体。但是为了html语义化,常常要给内容模块加上一些标题来让页面更有意义,在抛开css裸奔的情况下也能很顺利的汲取到页面信息。为此我们需将图片上的字体隐藏。

        另外,建站过过程中朋友喜欢把网站名称用H1表示,但从美观考虑,要用logo图片来代替h1,这时需要隐藏h1内的这段文字,但又不能对搜索引擎不友好,否则就失去了定义h1标签的意义。

      1)一般来说,偏移掉字体的方式是使用:text-indent:-9999px; (注意:只能用于block,table cells和inline-block)

        text-indent:-9999px;的具体使用方法:把h1作为一个块来显示(display:block;),指定长宽(和图片一样大小),然后指定h1的背景图片,也就是将我们需要的图片作为h1这个 标签的背景。而h1标签中插入的,仍然是作为字符形式出现的博客标题,然后用text-indent:-9999px;将文字甩到屏幕看不到的地 方。(9999px应该是足够了,谁的屏幕也没那么大吧)

      如:

    <h1>
      <a href=“http://www.seo100.net/”>博客园</a>
    </h1>

    在CSS文件中:(注意:将h1转化成block的话,他身后的的元素就被他赶到下一行了。如果正好这个h1后面,是一个按钮,就要用float来浮动以使他身后再出现簇拥者)

    复制代码
    h1 a{
      height:30px;
      165px;
      float:left;
      text-indent:-9999px;
      background-image:url(images/logo.gif);
      background-repeat:no-repeat;
      display:block;
      position:relative;
      }
    复制代码

        在h1使用上语义明确,符合语义化定义。text-indent就是首行缩进,大家都在中文段落,首行空两格用过它。这里通过负值缩进,使文字 超出可视区,而这时h1下的背景就显示出来了,h1中包含的<a>标签又不影响使用,对于隐藏文字“站点名称”应该是最佳方案了。但对于多段 文字的隐藏这个方法就不适合了。

       另外,点击<h1><a>链接时,会产生一个虚线框,对于IE还好,没什么问题,虚线框只是在背影图片大小。但是Firefox就有些麻烦,它把缩进的文字范围也包含进来了,这样不是很美观。

        于是需要屏掉点击时产生的虚线框,IE和FF屏虚线框方法不一样。IE采用的遍历方法(HTC,css表达式)有些耗系统资源,正好我们只需要隐藏FF下的虚线框就行了,IE就不管了,说一下Firefox如何去掉链接的虚线框的方法。

    a{
      outline:none;
     }
    outline是css3的一个属性,用的很少。声明,这是个不能兼容的css属性,在ie6、ie7、遨游浏览器都不兼容。只有ff,ie8在加了outline:none后会取消聚焦的虚线框。
    


    2)使用overflow:hidden;完美隐藏background之上的字体
    line-height:0;
    font-size:0;
    overflow:hidden;
    或 (不大适合用在h1标签上)
    .text-hidden {
      display:block;
      overflow:hidden;
      0;
      height:0;
      }

    3)还有另外2种方法,不推荐使用。

       1、display:none;
      这个大家普遍说法是,搜索引擎可能认为被隐藏的文字属于垃圾信息而被忽略,不为隐藏的对象保留物理占位空间。GG也搜CSS文件?不过如果用这个方法,<h1>如何设计,也是难题。  
     2、visibility:hidden;
      和display:none;相对应,为隐藏的对象保留物理占位空间。

     来自于http://www.cnblogs.com/qiaocheng/archive/2012/06/14/2549769.html    原作者亦昕

  • 相关阅读:
    STL hashtable杂谈
    生成器模式——创建型模式(3)
    JNuit4实战技巧总结
    抽象工厂方法模式——创建型模式(2)
    原型模式——创建型模式(4)
    几个经典同步问题的思考
    工厂方法模式——创建型模型(1)
    HDU 2050 折线分割平面 简单动态规划
    HDU 2084 数塔 简单动态规划
    HDU 2018 母牛的故事 简单动态规划
  • 原文地址:https://www.cnblogs.com/UUUU1/p/7513603.html
Copyright © 2020-2023  润新知