zoukankan      html  css  js  c++  java
  • CSS技巧: CSS隐藏文字的方法(CSS text-indent: -9999px;)

     建站过过程中朋友喜欢把网站名称用H1表示,但从美观考虑,要用logo图片来代替h1,这时需要隐藏h1内的这段文字,但又不能对搜索引擎不友好,否则就失去了定义h1标签的意义。
      
      在CSS中如何以图代字,找了一下CSS隐藏文字的方法,有以下几条:
      
      1、display:none;
      这个大家普遍说法是,搜索引擎可能认为被隐藏的文字属于垃圾信息而被忽略,不为隐藏的对象保留物理占位空间。GG也搜CSS文件?不过如果用这个方法,<h1>如何设计,也是难题。
      
      2、visibility:hidden;
      和display:none;相对应,为隐藏的对象保留物理占位空间。
      
      3、overflow:hidden;
      这是网上用的最多的方法,但是我认为对于隐藏h1标签的“站点名称”文字,不太合适,原因我在最后说。
      .texthidden{
      display:block;
      overflow:hidden;
      0;
      height:0;
      }
      
      4、positon:absolute;
      用绝对定位将其推出可视区,不过虽然可视性不存在,但仍占据物理空间,与隐藏文字的宗旨相背,另外我个人不喜欢用绝对坐标定位magin这个属性,margin在不同浏览器中总是带来不可预料的Bug。
      .texthidden{
      positon:absolute;
      margin-top:-9999px;
      margin-left:-9999px;
      }
      
      5、text-indent:-9999px;
      把h1作为一个块来显示(display:block;),指定长宽(和图片一样大小),然后指定h1的背景图片,也就是将我们需要的图片作为h1这个标签的背景。而h1标签中插入的,仍然是作为字符形式出现的博客标题,然后用text-indent:-9999px;将文字甩到屏幕看不到的地方,9999px应该是足够了,谁的屏幕也没那么大吧。
      
      h1a{
      height:30px;
      165px;
      float:left;
      text-indent:-9999px;
      background-image:url(images/logo.gif);
      background-repeat:no-repeat;
      display:block;
      position:relative;
      }
      
      <h1>
      <ahref=http://www.seo100.net/>百度优化</a>
      </h1>
      总结一下:
      
      如果不考虑搜索引擎的因素,方案一无疑最佳的,适合内网站点使用,并不是一无是处。
      
      方案二,可以用在特殊的占位场合,了解一下,没坏处。
      
      方案三,网上都说好,如果不是h1标签,还真可以用它。
      
      方案四,嗯,前面说我不喜欢。
      
      方案五,在h1使用上语义明确,符合语义化定义。text-indent就是首行缩进,大家都在中文段落,首行空两格用过它。这里通过负值缩进,使文字超出可视区,而这时h1下的背景就显示出来了,h1中包含的<a>标签又不影响使用,对于隐藏文字“站点名称”应该是最佳方案了。但对于多段文字的隐藏这个方法就不适合了。
      
      这里还有个问题,就是点击<h1><a>链接时,会产生一个虚线框,对于IE还好,没什么问题,虚线框只是在背影图片大小。但是Firefox就有些麻烦,它把缩进的文字范围也包含进来了,这样不是很美观。
      
      于是需要屏掉点击时产生的虚线框,IE和FF屏虚线框方法不一样。IE采用的遍历方法(HTC,css表达式)有些耗系统资源,正好我们只需要隐藏FF下的虚线框就行了,IE就不管了,说一下Firefox如何去掉链接的虚线框的方法。
      
      a{
      outline:none;/*去掉Firefox点击时产生的虚线框*/
      }
     

    -9999px 使浏览器画一个9999宽的盒子... 会降低一些性能。

    更有效率的方法(试过了,h1也能用):

    .hide-text {
    text-indent: 100%;
    white-space: nowrap;
    overflow: hidden;
    }

    From:http://ajhcc.blogbus.com/logs/41836252.html

  • 相关阅读:
    [PCB设计] 1、硬件原理图设计规范(一)——基本原则
    [每日电路图] 8、三轴加速度计LIS3DH电路图及功耗等指标
    [安卓] 19、一个蓝牙4.0安卓DEMO
    [异常解决] MPU6050启动异常读出陀螺仪和加速度计的值全为0的解决办法
    [异常解决] android studio检测不到手机的解决办法——ADB驱动自己安装
    [每日电路图] 7、设计一个PCB的流程及细节·总结——给外行的同学或刚入行的同学一个宏观鸟瞰电路板设计的大致流程的文章
    [专业名词·硬件] 2、DCDC、LDO电源稳压基本常识(包含基本原理、高效率模块设计、常见问题、基于nRF51822电源管理模块分析等)·长文
    mysql获取某个字段平均值方法AVG函数的使用
    Linux设置SSH隧道连接
    docker入门实例(转载)
  • 原文地址:https://www.cnblogs.com/autismtune/p/5224320.html
Copyright © 2011-2022 走看看