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

转载 2016年08月30日 08:23:39
版权声明:转载时请以超链接形式标明文章原始出处和作者信息及本声明
http://www.blogbus.com/ajhcc-logs/41836252.html


建站过过程中朋友喜欢把网站名称用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.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点击时产生的虚线框 */
}

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

版权声明:转载时请以超链接形式标明文章原始出处和作者信息及本声明 http://www.blogbus.com/ajhcc-logs/41836252.html 建站过过程中朋友喜欢把网站名称用H...

CSS隐藏文字以及以图代字( text-indent: 100%;)

版权声明:转载时请以超链接形式标明文章原始出处和作者信息及本声明   http://ajhcc.blogbus.com/logs/41836252.html      建站过过程中朋友喜欢把网站...

CSS创建竖排文字的简单方法

在制作网页的时候我们经常需要创建一些竖排的文字,或许这对你来说是一件很简单的事情,但是你是否想过用CSS可有N种创建竖排文字的方法?希望这几种方法能够给你带来一些提示。 方法一:标签   ...

CSS属性(2)——text-indent 属性

text-indent 属性规定文本块中首行文本的缩进,也允许使用负值。如果使用负值,那么首行会被缩进到左边。 示例: 北京时间8月7日,美媒CheatSheet分析了骑士新赛季卫冕冠军...

网页竖排文字的实现——只需要CSS

本文解决的问题: 仅使用CSS,让网页上的文字能竖排显示。 网页上的文字一般都是横着从左往右显示,如果再加一点CSS样式,可以做到从左往右或从右往左显示(CSS文本属性,direction: ltr ...

使用CSS实现文字的竖排

有时我们需要一段文字进行从上到下竖列排版,我们知道css样式中有一样式可以让其竖列排版,但所有浏览器不全兼容,逼不得已放弃。 一、原始使用writing-mode属性-不推荐  语法:writin...

页面中图片随着文字的上下拖动,不改变图片位置(主要是通过添加css样式得来)

图片位置不随着文字的拖动而改变图片的位置。 New Document .logo { ...

css-input与文字的对齐

前言 目前中文网站上面的文字,就我的个人感觉而言,绝大多数网站的主流文字大小为12px,因为在目前高分辨率显示器屏幕下,11px的汉字,其像素点开始不规整,文字不如12px来的显示良好。12px大小...

css-input与文字的对齐

前言 目前中文网站上面的文字,就我的个人感觉而言,绝大多数网站的主流文字大小为12px,因为在目前高分辨率显示器屏幕下,11px的汉字,其像素点开始不规整,文字不如12px来的显示良好。12px大小...

CSS实现table td中文字的省略与显示

所谓省略就是把多余的字以“...”显示出来,而显示则是当鼠标移动到td上时,把省略的字重新显示出来。对于一个table,兼容IE与FF、Chrome的省略方式CSS写法: 1 table{...
内容举报
返回顶部
收藏助手
不良信息举报
您举报文章:CSS技巧: CSS隐藏文字的方法(CSS text-indent: -9999px;)
举报原因:
原因补充:

(最多只允许输入30个字)