CSS隐藏文字的方法

作者:荆棘鸟 来源:荆棘鸟's Blog 时间:2008-10-03 12:08:00 

我在一篇文章所说,首页的“站点名称”最好用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; 
        width: 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应该是足够了,谁的屏幕也没那么大吧。


h1 a {
        height: 30px;
        width: 165px;
        float: left;
        text-indent: -9999px;
        background-image: url(images/logo.gif);
        background-repeat: no-repeat;
        display: block;
        position: relative;
}
<h1> <a href=http://www.zfnn.com/>荆棘鸟</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点击时产生的虚线框 */
}
标签:文字,隐藏,css
0
投稿

猜你喜欢

  • Sun拟10亿美元收购MySQL

    2008-01-17 11:56:00
  • JavaScript 编程引入命名空间

    2007-10-11 19:00:00
  • asp中Access与Sql Server数据库区别总结

    2007-11-18 15:08:00
  • Oracle 10G:PL/SQL正规表达式(正则表达式)手册

    2009-07-02 12:33:00
  • RSS2.0规范中文版

    2008-06-25 13:53:00
  • Debugging JavaScript:throw与console

    2008-08-29 17:03:00
  • 面向对象的CSS

    2009-07-03 12:23:00
  • sqlserver清空service broker中的队列的语句分享

    2011-09-30 11:33:35
  • 实现一个获取元素样式的函数getStyle

    2009-02-10 10:37:00
  • PHP curl get post 请求的封装函数示例【get、post、put、delete等请求类型】

    2023-05-25 01:24:18
  • ASP URL反编码函数代码

    2011-02-28 11:04:00
  • 编写兼容IE和FireFox的脚本

    2009-05-19 12:01:00
  • 隐蔽的ASP后门 大家可以查看下

    2010-08-05 21:26:00
  • 浅析“Rich”设计模式

    2009-03-12 12:36:00
  • 如何查询Top N及Top(M―N)记录?

    2009-11-11 20:03:00
  • 用mysql做站点时怎样记录未知错误的发生

    2009-01-14 13:16:00
  • AJAX缓存的问题解决办法

    2009-04-26 14:47:00
  • CSS网页布局编码小技巧整理

    2009-12-30 16:50:00
  • 鼠年发几张可爱老鼠的表情gif

    2008-01-29 12:50:00
  • SqlServer 基础知识 数据检索、查询排序语句

    2011-11-03 16:46:12
  • asp之家 网络编程 m.aspxhome.com