为什么要字体隐藏?

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

另外,建站过过程中朋友喜欢把网站名称用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;
  width: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;
  width:0;
  height:0;
  }

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

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

text-indent:-9999px 字体隐藏问题的更多相关文章

  1. [UE4]Text Block文字字体偏移

    这样看起来就像是真正的垂直居中对齐了.

  2. sublime text 修改侧边栏字体大小

    ctrl+shift_p 安装PackageResourceViewer,通过**PackageResourceViewer **这个插件来实现. 打开这个插件,选择Open Resource 输入T ...

  3. 巧用css text-indent减小中文标点符号的占位大小

    由于设计需要,我们的页面中经常会有如下效果: 可是我们实现出来的效果确实这样的: 看起来两行文本没有对齐嘛,仔细检查后原来是[字符的原因,因为是中文标点符号占半个字的位置.不信?选中下汉字标点符号看一 ...

  4. 酷炫字体背景图的实现——神奇的background-clip: text

    愉快的时光总是飞快,七天小长假已接近尾声,抓住假期的尾巴,再学个新知识点——css的background-clip: text属性...会不会有种陌生的感觉,毕竟在我们的印象里,background- ...

  5. Sublime Text 安装中文、英文字体

    在 Sublimte Text 如何使用默认的字体,英文好看,但是中文不好,所以我就找了一个支持中文英文的字体 YaHei Consolas Hybrid 这个字体看起来效果比较差 下载地址: 如果无 ...

  6. QML学习:Rectangle,Text,TextEdit,Flickable,Flipable元素

    QML学习:Rectangle,Text,TextEdit,Flickable,Flipable元素 本文博客链接:http://blog.csdn.net/jdh99,作者:jdh,转载请注明. 参 ...

  7. css隐藏文字的小技巧

    前段时间,在做项目的时候,遇到一个问题.背景图片上有一个“立即注册”的按钮,需要点击.但是问题是:现在的图片是背景图片,如果图片是在html页面内的话,我们可以使用锚点来对图片添加链接.这个时候,我们 ...

  8. sublime text 3安装及使用

    Sublime Text 3中文版是一款跨平台代码编辑器(Code Editor)软件.Sublime Text 3既可以编写代码还可以编辑文本,是程序员必不可少的工具,相比之前的版本Sublime ...

  9. LOG.ZS.0001.基于Freetype的游戏字体渲染优化思路

    Total Utf8-ucs2 Html_parse Layout Render_string Init_texture Ft_load_glyph 原始 2293 1 26 708 1556 2 1 ...

随机推荐

  1. 基于能量收集的智能家居-2013国家级大学生创业实践项目申报_商业计划书_V0.2

    SmartHome项目商业计划 基于能量收集的 免电池无线智能家居系统    IA-SmartHome团队    2012.12     l  基于无线的智能家居解决方案,节省施工成本: l  基于能 ...

  2. [荐]使用Js操作注册表

    使用Js操作注册表 要操作注册表需要通过ActiveX控件调用WScript.shell对象,通过该对象的一些方法来操作. WshShell对象:可以在本地运行程序.操纵注册表内容.创建快捷方式或访问 ...

  3. C语言字符串长度(转)

    C语言字符串长度的计算是编程时常用到的,也是求职时必考的一项. C语言本身不限制字符串的长度,因而程序必须扫描完整个字符串后才能确定字符串的长度. 在程序里,一般会用strlen()函数或sizeof ...

  4. Android中log使用方法

    private static final String ACTIVITY_TAG="MainActivity"; Log.v(MainActivity.ACTIVITY_TAG, ...

  5. Android NDK开发实例教程

    WINDOWS系统+ Eclipse + NDK+Android 最近开始学习Android平台开发,Android还没有玩转,Java也是刚入门,这又要开始在Android中调用C语言,需要利用ND ...

  6. barabasilab-networkScience学习笔记1-网络科学简介

    第一次接触复杂性科学是在一本叫think complexity的书上,Allen博士很好的讲述了数据结构与复杂性科学,barabasi是一个知名的复杂性网络科学家,barabasilab则是他所主导的 ...

  7. SSH框架应用解析

    一.什么是SSH SSH 不仅仅只是一个框架,而是由多个框架集成而来,是 struts+spring+hibernate的一个集成框架,是目前较流行的一种Web应用程序开源框架,结构清晰.可复用性好. ...

  8. SQLServer 本地移动发布/订阅/分发数据库文件并更改逻辑名称和物理文件名

    -------------------------------------------------------------------------------------------------- - ...

  9. Jmeter 小攻略(转)

    http://www.myexception.cn/open-source/1346307.html

  10. DataTables - 问题集

    1.增加额外搜索条件 var reqData = {}; var extraSearch = []; var oTable = $('table selector').dataTable({ 'aja ...