图代文时隐藏文字的兼容实现

早年~


楔子

在xx项目中,为各网点图标隐藏文字时,用了{text-indent:-9999em;}的方式,结果IE6/7下图片就不见了,如下:

正常浏览器:

IE6/7:

平时对于这种情况下的文字隐藏,多用line-height(下文提到的方式三)的方式,并没有认真去考虑它的优劣,也没有进行其他方式的测试和比较,所以一用text-indent,就出现了上述问题。于是,趁着这个契机,对常用的文字隐藏方式进行了简单的测试总结。

简单说明

对于图代文的情况,我大致分为两种,一种是图片较大、背景不透明、图片加载不到时需要显示文字的,一种是图片较小或背景透明,图片加载不到时不显示文字也影响不大的。对于前一种,我一般用图片绝对定位的方式将文字盖在下面,并尽可能设置文字的样式与图片中的一致。

上图禁用图片后的效果:

这种争议比较小,也不是这次讨论的重点,这次想要测试的是后一种情况,ok,废话少说,开工。

测试

对于图片较小或背景透明,图片加载不到时不显示文字也影响不大的情况,或者说,文字不能被盖到图片下的情况,常用隐藏文字的方式有如下三种:

  • font-size方式
  • text-indent方式
  • line-height方式

下面逐一进行测试:

方式一(font-size方式)

Step 1

代码:

展现:

FF、Webkit、Opera、IE8/9:

IE6/7:

说明:

设置了 {font-size:0;} 之后,IE6/7下文字没有消失,而是以1像素点的形式存在。

Step 2

代码:

展现:

All of FF、Opera、Webkit、IE6-9:

说明:

设置 {line-height:0;},即可消除IE6/7下的像素点。

方式二(text-indent方式)

Step 1

代码:

展现:

FF、Webkit、Opera、IE8/9:

IE6/7:

整个<div>的内容被隐到屏幕外了,页面上一片空白。

Step 2

代码:

展现:

All of FF、Opera、Webkit、IE6-9:

说明:

元素为块级布局时,可修复此问题。此处将实现方式由原来的inline-block更改为float。

方式三(line-height方式)

代码:

展现:

All of FF、Opera、Webkit、IE6-9:

说明:

还是这种方式比较好,基本不存在兼容问题。

总结

三种方式相对而言,个人嚼着一、三比较好,方式二依赖于布局,如果后续有人改了布局,对这个问题又不熟悉的话,可能会造成bug。

以上,仅为抛砖引玉,期待更好的方式……

2012.12.5

图代文时隐藏文字的兼容实现,布布扣,bubuko.com

时间: 2024-12-22 17:35:13

图代文时隐藏文字的兼容实现的相关文章

input 输入框获得/失去焦点时隐藏/显示文字(jquery版)

input输入框在获得或失去焦点时隐藏或显示文字,这样的焦点效果想必很多朋友在填写form表格的时候都曾见识过吧,本文使用jquery实现以下,感兴趣的朋友可以参考下哈 大家可以看效果图的搜索输入框,默认显示着“用户名/Email”的提示,当这个 input 输入框获得焦点时,就自动清空等待用户输入,当用户啥也没输入就离开这个 input 输入框时,输入框内又再次显示“用户名/Email”的提示.是不是很常见?很多搜索.登录.表单都会用到这个效果,但是我看了N多个网站,有90%以上是这么实现的:

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技巧: CSS隐藏文字的方法(CSS text-indent: -9999px;)

建站过过程中朋友喜欢把网站名称用H1表示,但从美观考虑,要用logo图片来代替h1,这时需要隐藏h1内的这段文字,但又不能对搜索引擎不友好,否则就失去了定义h1标签的意义. 在CSS中如何以图代字,找了一下CSS隐藏文字的方法,有以下几条: 1.display:none; 这个大家普遍说法是,搜索引擎可能认为被隐藏的文字属于垃圾信息而被忽略,不为隐藏的对象保留物理占位空间.GG也搜CSS文件?不过如果用这个方法,<h1>如何设计,也是难题. 2.visibility:hidden; 和disp

ListView或者RecycleView滚动时隐藏Toolbar( Part 2 )

ListView或者RecycleView滚动时隐藏Toolbar( Part 2 ) > * 原文链接 : How to hide/show Toolbar when list is scrolling (part 2) * 译者 : chaossss * 校对者: 这里校对者的github用户名 * 状态 : 完成 Hello,各位小伙伴,俺胡汉三又来了!!!今天我打算接着上一篇博文继续给大家讲解展现/隐藏Toolbar的效果.我建议没有读过 ListView或者RecycleView滚动时

通过使用html字体阴影效果解决hover图片时显示文字看不清的问题

1.前言 最近需要加入一个小功能,在鼠标越过图片时,提示其大小和分辨率,而不想用增加属性title来提醒,不够好看.然而发现如果文字是一种颜色,然后总有概率碰到那张图上浮一层的文字会看不到,所以加入文字字体阴影效果来解决此问题. 2.例子说明 未加入字体阴影之前的效果 加入字体阴影的效果 如果没加入字体阴影的效果,左图会看不清哪些文字的,而右图没有多大区别. 3.相关代码 <div> <img alt="imageSample" style="width:1

easyui-tabs图标(获取焦点时显示图标,失去焦点时隐藏图标)

获取焦点时显示图标,失去焦点时隐藏图标 <script type="text/javascript"> $('#_progress').tabs({ onSelect: function (title) { var tab = $('#_progress').tabs('getSelected'); // get selected panel var index = $('#_progress').tabs('getTabIndex', tab); //alert(inde

iOS 7.1的Safari为meta标签新增minimal-ui属性,在网页加载时隐藏地址栏与导航栏

iOS 7.1的Safari为meta标签新增minimal-ui属性,在网页加载时隐藏地址栏与导航栏 在过去,用 Safari 打开一个网页后是这样的: 是不是十分不爽?因为顶部的地址栏与底部的导航栏让页面显得非常拥挤,所以用户常常会马上伸手触屏滑动让它们隐藏起来. 始终强调人性化设计的苹果当然注意到了这点,于是在 iOS 7.1 的 Safari 中为 meta 标签新增 minimal-ui 属性,让网页在加载时便可隐藏顶部的地址栏与底部的导航栏. 如何实现?你只需将“minimal-ui

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

bat批处理文件运行时隐藏cmd窗口

想让bat运行时隐藏cmd窗口,最好的方法是使用vbs文件实现, 1.新建一个文本文档,改名为123.vbs,编辑内容: set ws=WScript.CreateObject("WScript.Shell") ws.Run "yy.bat",0 yy.bat是同目录下的批处理文件.双击123.vbs,即可运行批处理文件,但没有cmd窗口弹出. 缺点:这种方法可以隐藏cmd窗口,但不能隐藏bat中打开的第三方窗口.如yy.bat的内容为:WinRAR.exe x