http://caib.me/hide-text/
最近整理的一份CSS文字隐藏的demo,总结了几种方法,希望得出一种最完美的方案放进自己的代码片段,可是,到最后却陷入一种重复不断地推翻结
论的境地。因为需要考虑的应用场景和元素实在太多,放下浏览器不谈,不同的应用终端,不同的标签结构会有不一样的更优方案,因此,与其希望在工作上多“偷
一些懒”,不如平常多巩固积累基础的知识,在需要权衡的时候,便能更加得心应手。
因为自己经验尚浅,demo部分难免会有错漏情况,如发现问题,望大家能指出。
方法列表 demo
-
毫无保留:display:none
-
代码片段:
(x)HTML
<
p
class
=
"hide_display"
>我是打酱油的文本</
p
>
CSS
.hide_display{
display
:
none
;}
-
兼容性:
浏览器兼容性
| CHROME | FIREFOX | OPERA | SAFARI | IE |
版本 |
5
3.6
10.10
4
6
7
8
支持情况 |
Y
Y
Y
Y
Y
Y
Y
-
优点:
- 方便、快捷
- 兼容性好
-
缺点:
- 屏幕阅读器无法阅读
- 超链接不适用
- 图片替代文本需要其他标签的背景
影响搜索排名
- 大量使用容易被认为是SEO作弊
-
折中选择:overflow:hidden/position:absolute/visibility:hidden
-
代码片段:
(x)HTML
<
span
class
=
"hide_overflow"
>我是一号打酱油的文本</
span
>
<
p
class
=
"hide_position"
>我是二号打酱油的文本</
p
>
<
p
class
=
"hide_visibility"
>我是三号打酱油的文本</
p
>
CSS
-
兼容性:
浏览器兼容性
| CHROME | FIREFOX | OPERA | SAFARI | IE |
版本 |
5
3.6
10.10
4
6
7
8
支持情况 |
Y
Y
Y
Y
Y
Y
Y
-
优点:
- 方便、快捷
- 不希望屏幕阅读器读取的内容可以使用visibility
-
缺点:
- 超链接不适用
- 图片替代文本需要其他标签的背景
overflow:hidden;被认为有害体验
-
体验损失:text-indent负值
-
代码片段:
(x)HTML
<
p
class
=
"hide_tex"
><
a
href
=
"#"
>我是打酱油的超链接一号</
a
></
p
>
<
a
class
=
"hide_tex_span"
href
=
"#"
><
span
>我是打酱油的超链接二号</
span
></
a
>
<
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{
-
兼容性:
浏览器兼容性
| CHROME | FIREFOX | OPERA | SAFARI | IE |
版本 |
5
3.6
10.10
4
6
7
8
支持情况 |
Y
Y
Y
Y
Y
Y
Y
-
优点:
- 适用超链接的图片替代
-
缺点:
- FF的虚边问题
- text-indent容易产生bug
-
牛皮癣:font-size设零
-
代码片段:
(x)HTML
<
p
class
=
"hide_fs"
>我是擦不掉牛皮癣</
p
>
<
button
class
=
"hide_fs"
>我是打酱油的文本btn</
button
>
<
input
class
=
"hide_fs"
type
=
"submit"
/>
CSS
-
兼容性:
浏览器兼容性
| CHROME | FIREFOX | OPERA | SAFARI | IE |
版本 |
5
3.6
10.10
4
6
7
8
支持情况 |
N
Y
Y
N
N
N
N
-
优点:
- 方便、快捷
-
缺点:
- 浏览器表现不一致,ie,safari有最小字号,chrome最小12px,ff不显示文本
- 适用环境少
-
强强联合:line-height三倍
-
代码片段:
(x)HTML
<
p
class
=
"hide_lh"
><
a
href
=
"#"
>目前为止被正常人类普遍接受的疑似最完美隐藏文字方案,传说是tommy发明的</
a
></
p
>
<
button
class
=
"hide_lh_btn"
>我是打酱油的文本btn</
button
>
<
input
class
=
"hide_lh_btn"
type
=
"submit"
/>
<
input
class
=
"hide_lh_btn_final"
type
=
"submit"
/>
CSS
.hide_lh a, .hide_lh_btn{
-
兼容性:
浏览器兼容性
| CHROME | FIREFOX | OPERA | SAFARI | IE |
版本 |
5
3.6
10.10
4
6
7
8
支持情况 |
Y
Y
Y
Y
Y
Y
Y
-
优点:
- 兼容性好
- 超链接和图片替代文本可用
-
缺点:
- 使用限制较大,需要定宽高
-
多一丁点:前置背景遮挡
-
代码片段:
(x)HTML
<
a
class
=
"hide_bg"
href
=
"#"
><
span
class
=
"front_bg"
></
span
>我是可访问性的化身</
a
>
CSS
background
:
url
(
\'bg_text.png\'
)
no-repeat
;
-
兼容性:
浏览器兼容性
| CHROME | FIREFOX | OPERA | SAFARI | IE |
版本 |
5
3.6
10.10
4
6
7
8
支持情况 |
Y
Y
Y
Y
Y
Y
Y
-
优点:
- 兼容性好
- 超链接和图片替代文本可用
- 可访问性强
-
缺点:
- 使用限制较大,需要定宽高
- 代码冗余,需要空标签
-
另辟蹊径:content:”"
-
代码片段:
(x)HTML
<
a
class
=
"hide_ct"
href
=
"#"
>也许我才是最合适的,谁知道呢,内容表现分离。只有opera支持</
a
>
CSS
.hide_ct{
content
:""; }
-
兼容性:
浏览器兼容性
| CHROME | FIREFOX | OPERA | SAFARI | IE |
版本 |
5
3.6
10.10
4
6
7
8
支持情况 |
N
N
Y
N
N
N
N
-
优点:
- 简单
-
缺点:
- 内容样式分离
- 不实用