新闻中心
{ hide_text } CSS文字隐藏总结报告
最近整理的一份CSS文字隐藏的demo,总结了几种方法,希望得出一种最完美的方案放进自己的代码片段,可是,到最后却陷入一种重复不断地推翻结论的境地。因为需要考虑的应用场景和元素实在太多,放下浏览器不谈,不同的应用终端,不同的标签结构会有不一样的最优方案,因此,与其希望在工作上多“偷一些懒”,不如平常多巩固积累基础的知识,在需要权衡的时候,便能更加得心应手。
因为自己经验尚浅,demo部分难免会有错漏情况,如发现问题,望大家能指出。
方法列表 demo
1. 毫无保留:display:none
代码片段:
(x)HTML
<p class="hide_display">我是打酱油的文本</p> |
CSS
/* 暴力隐藏 */ .hide_display{display:none;} |
兼容性:
优点:
方便、快捷
兼容性好
缺点:
屏幕阅读器无法阅读
超链接不适用
图片替代文本需要其他标签的背景
影响搜索排名
大量使用容易被认为是SEO作弊
2. 折中选择:overflow:hidden/position:absolute/visibility:hidden
代码片段:
(x)HTML
<span class="hide_overflow">我是一号打酱油的文本</span> <p class="hide_position">我是二号打酱油的文本</p> <p class="hide_visibility">我是三号打酱油的文本</p> |
CSS
/* 隐藏元素,脱离文本流,使元素不影响其他元素 */ |
兼容性:
优点:
方便、快捷
不希望屏幕阅读器读取的内容可以使用visibility
缺点:
超链接不适用
图片替代文本需要其他标签的背景
3. 体验损失:text-indent负值
代码片段:
(x)HTML
<p class="hide_tex"><a href="#">我是打酱油的超链接一号</a></p> <a class="hide_tex_span" href="#"><span>我是打酱油的 超链接二号</span></a> <!--全英文字符在IE下不能被隐藏 --> <input class="hide_tex_input" type="submit" /> <input class="hide_tex_input" type="submit" /> <button class="hide_tex_input">我是打酱油的文本 btn</button> |
CSS
.hide_tex a, .hide_tex_span{ |
兼容性:
优点:
适用超链接的图片替代
缺点:
FF的虚边问题
text-indent容易产生bug
4. 牛皮癣:font-size设零
代码片段:
(x)HTML
<p class="hide_fs">我是擦不掉牛皮癣</p> <button class="hide_fs">我是打酱油的文本btn</button> <input class="hide_fs" type="submit" /> |
CSS
.hide_fs{ font-size:0; } |
兼容性:
优点:
方便、快捷
缺点:
浏览器表现不一致,ie,safari有最小字号,chrome最小12px,ff不显示文本
适用环境少
5. 强强联合:line-height三倍
代码片段:
(x)HTML
<p class="hide_lh"><a href="#">目前为止被正常人类普遍接受的疑似最完美隐藏文字方案,传说是tommy发明的</a></p> <!-- line-height在ff3.6的button无法隐藏文本,需要配合 其他方式 --> <button class="hide_lh_btn">我是打酱油的文本 btn</button> <!-- line-height在ff3.6、opera的input无法隐藏文本,需 要配合其他方式 --> <input class="hide_lh_btn" type="submit" /> \ <!-- 目前比较完善的方案 --> <input class="hide_lh_btn_final" type="submit" /> |
CSS
/* 设定高度,利用行高将文本撑到容器可视范围外 */ .hide_lh a, .hide_lh_btn{ width:200px; height:20px; overflow:hidden; line-height: 60px;/* 行高最好设3倍或以上,chrome容易后漏 */ display:block;/* 行内元素需要 */ /* 演示需要 */ background-color:#ccc; margin-left:300px; } .hide_lh_btn_final{ \ width:200px; height:20px; overflow:hidden; line-height:60px; display:block; font-size:0px; /* opera和ff支持 */ } |
兼容性:
优点:
兼容性好
超链接和图片替代文本可用
缺点:
使用限制较大,需要定宽高
多一丁点:前置背景遮挡
代码片段:
(x)HTML
<!-- 在css无效和css有效图片无效都适用 --> <a class="hide_bg" href="#"><span class="front_bg"></span>我是可访问性的化身</a> |
CSS
.hide_bg{ width:200px; height:20px; position:relative; display:block;/* 行内元素需要 */ } .hide_bg .front_bg{ background:url('bg_text.png') no-repeat; /* 背景内容等于或大于容器大小 */ position:absolute; /* 绝对定位,不影响文本 */ left:0px; top:0px; width:200px;/* 与父元素等宽高 */ height:20px; display:block; /* cursor:pointer; ie6和链接需要用 */ } |
兼容性:
优点:
兼容性好
超链接和图片替代文本可用
可访问性强
缺点:
使用限制较大,需要定宽高
代码冗余,需要空标签
另辟蹊径:content:”“
代码片段:
(x)HTML
<!--只有opera支持,按定义只能用在:before 和:after--> <a class="hide_ct" href="#">也许我才是最合适的,谁知道呢,内容表现分离。只有opera支持</a> |
CSS
.hide_ct{ content:""; } |
兼容性:
优点:
简单
缺点:
内容样式分离
不实用
相关新闻
更多相关新闻>>- 用Windows Server 2003/2000/XP自带的IIS建网站
- 2009/10/19
- 4个Web网站图片在线压缩优化 能使图片小的工具
- 2009/10/10
- 智和网络诚招网页设计/.net /PHP程序员/业务员
- 2010/9/28
- 在Google地图上标注-Google搜索结果地图上标注我的信息
- 2009/9/20
- Web页中页脚(Footer)贴底实现(兼容IE6/7/8, FF3)
- 2009/8/16
- 谷歌Chrome发布IE插件 取代IE网页渲染引擎
- 2009/9/23
- 百度空间Hi不起来 因交友网站太火
- 2009/6/4
- 国内几个比较牛的网站UED博客 体验与分析
- 2009/4/19
- 微软报告显示假冒防病毒软件威胁在上升
- 2009/4/10
- 瑞星全功能安全软件和个人防火墙将googleanalytics(谷歌统计)误判
- 2009/4/30