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;

  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应该是足够了,谁的屏幕也没那么大吧。

  

  h1a{

  height:30px;

  width: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

时间: 2024-10-22 03:03:03

CSS技巧: CSS隐藏文字的方法(CSS text-indent: -9999px;)的相关文章

css 中在图片中加入文字的方法

父div 相对定位 子 div 绝对定位(文字的话span标签即可) 子div 可以是多个,实现div同位置叠加 <div class='a'> <div class='b'></div> <div class='c'> <span>文字</span> </div> <div class='d'></div> </div> .a{ width:400px; height:400px; p

css隐藏文字的小技巧

前段时间,在做项目的时候,遇到一个问题.背景图片上有一个“立即注册”的按钮,需要点击.但是问题是:现在的图片是背景图片,如果图片是在html页面内的话,我们可以使用锚点来对图片添加链接.这个时候,我们就可以使用隐藏文字的方法来对图片进行添加链接. 定义一个a的标签,使用绝对定位,覆盖到"立即注册"上面,像这样: <a href="#">立即注册</a> 然后我控制字体隐藏 div{ text-index:-9999px; background

ie6,ie7,ie8 css bug汇总以及兼容解决方法

1:li边距“无故”增加 任何事情都是有原因的,li边距也不例外. 先描述一下具体状况:有些时候li边距会突然增 加很多,值也不固定(只在IE6/IE7有这种现象),让人摸不着头脑,仔细“研究”发现是由于其低级元素ul的padding引 起,padding的上下值对li有影响,左右无影 响.所以只好笨手笨脚地把padding去掉,换成margin.这是能解决问题,但往往不是我们想要的结果,或许 还会引起其他不必要的怪现象. 解决这个问题的方法,其实很简单,既然是有ul引 起的,就设置ul的显示形

CSS+Js在段落文字最后自动加入隐藏文字

CSS+Js在段落文字最后自动加入隐藏文字 CSS和JavaScript控制段落最后自动添加指定的隐藏文字,不建议这样用,因为对搜索引擎不太友好.不过作为一项技巧来研究,下面帖出具体的代码,以供参考指正: 01 <!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd"> 0

css之隐藏内容的方法

css隐藏内容的方法有三种:即display:none.visibility:hidden.overflow:hidden. 1.display:none;的缺陷: 搜索引擎可能认为被隐藏的文字属于垃圾信息而被忽略 屏幕阅读器(是为视觉上有障碍的人设计的读取屏幕内容的程序)会忽略被隐藏的文字. 2.visibility: hidden ;的缺陷: 隐藏的内容会占据他所应该占据物理空间. 3.overflow:hidden;一个比较合理的方法 .texthidden { display:block

反爬虫破解系列-汽车之家利用css样式替换文字破解方法

网站: 汽车之家:http://club.autohome.com.cn/ 以论坛为例 反爬虫措施: 在论坛发布的贴子正文中随机抽取某几个字使用span标签代替,标签内容位空,但css样式显示为所代替的文.这样不会 影响正常用户的阅读,只是在用鼠标选择的时候是选不到被替换的文字的,对爬虫则会造成采集内容不全的影响. 原理分析: 先看一下span标签的样式 截图是火狐浏览器的firebug的html面板.我们可以看到正文中每个span标签的样式都是一个文字,我们只需要找到每个 span标签的cla

CSS之利用text-indent隐藏文字用图片当Login

html: <!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd"><html xmlns="http://www.w3.org/1999/xhtml"><head><meta http-equiv="Conte

CSS控制图片和文字在同一行显示且对齐的3种方法

CSS控制图片和文字在同一行显示且对齐的3种方法 在 HTML 代码中,有时会需要在文字旁边加上一个图标. 默认情况,是图片置顶对齐,文字置底对齐,所以通常图片高,文字低,不能水平居中对齐. 常见方法有3种:1.通过添加css的“vertical-align:middle;”:2.如果图片是背景图片,可以在css中设置背景图片:3.把文字和图片分别放入不同的div中.上面三种方法都可以让图片和文字在同一行显示,下面我们用实例来应用一下. 1.添加上“vertical-align:middle”属

CSS技巧收集——毛玻璃效果

CSS技巧收集--毛玻璃效果 原文地址    http://www.cnblogs.com/ghost-xyx/p/5677168.html 先上 demo和 源码 其实毛玻璃的模糊效果技术上比较简单,只是用到了 css 滤镜(filter)中的 blur 属性.但是要做一个好的毛玻璃效果,需要注意很多细节. 比如我们需要将上图中页面中间的文字区域变成毛玻璃效果,首先想到的是给其设置一个透明度,并添加模糊滤镜: .content { background-color: rgba(0,0,0,0.