不同场景下使用CSS隐藏元素
使用 CSS 让元素不可见的方法很多,剪裁、定位到屏幕外、明度变化等都是可以的。虽然它们都是肉眼不可见,但背后却在多个维度上都有差别。
元素不可见,同时不占据空间、辅助设备无法访问、不渲染
使用 script 标签隐。例如:
<script type="text/html">
    <img src="1.jpg">
</script>
此时,图片 1.jpg 是不会有请求的。<script> 标签是不支持嵌套的,因此,如果希望在 <script> 标签中再放置其他不渲染的模板内容,可以试试使用 <textarea> 元素。例如:
<script type="text/html">
    <img src="1.jpg">
    <textarea style="display: none;">
        <img src="2.jpg">
    </textarea>
</script>
同样 2.jpg 也是不会有请求的。
另外,<script> 标签隐藏内容获取使用 script.innerHTML,<textarea> 使用 textarea.value。
元素不可见,同时不占据空间、辅助设备无法访问,但资源有加载,DOM 可访问
使用 display: none 隐藏。例如:
.dn {
    display: none;
}
元素不可见,同时不占据空间、辅助设备无法访问,但显隐的时候可以有 transition 淡入淡出效果
使用 position: absolute 和 visibility: hidden; 隐藏。例如:
.hidden {
    position: absolute;
    visibility: hidden;
}
元素不可见,不能点击、辅助设备无法访问,但占据空间保留
使用 visibility: hidden; 隐藏。例如:
.hn {
    visibility: hidden;
}
元素不可见,不能点击、不占据空间,但键盘可访问
使用 clip 裁剪 或者 relative 隐藏。例如:
.clip {
    position: absolute;
    clip: rect(0, 0, 0, 0)
}
.out {
    position: relative;
    left: -999em;
}
元素不可见,不能点击、但占据空间、键盘可访问
使用 relative 和 z-index 隐藏。例如,如果条件允许,也就是和层叠上下文之间存在设置了背景色的父元素,则也可以使用更友好的 z-index 负值隐藏。例如:
.lower {
    position: relative;
    z-index: -1;
}
元素不可见,可以点击、不占据空间
使用透明度隐藏。例如:
.lower {
    position: relative;
    opacity: 0;
    filter: Alpha(opacity=0);
}
元素不可见,可以点击、可以选择、占据空间
使用透明度隐藏。例如:
.lower {
    opacity: 0;
    filter: Alpha(opacity=0);
}
大家可以通过实际的隐藏场景选择合适的隐藏方法。
实际开发场景千变万化,可能还有更多的隐藏方法,也欢迎大家积极留言探讨。
摘自:《CSS世界》第10章 元素的显示与隐藏
不同场景下使用CSS隐藏元素的更多相关文章
- CSS隐藏元素的几种妙法
		
一说起CSS隐藏元素,我想大部分小伙伴们都会想到的第一种方法就是设置display为none.这是最为人所熟知也是最常用的方法.我相信还有不少人想到使用设置visibility为hidden来隐藏元素 ...
 - CSS“隐藏”元素的几种方法的对比
		
本文地址:http://luopq.com/2016/02/15/css-tricks-of-hide-element/,转载请注明 一说起CSS隐藏元素,我想大部分小伙伴们都会想到的第一种方法就是设 ...
 - css隐藏元素的几种方法与区别
		
css隐藏元素的几种方法与区别 一:display:none;隐藏不占位 display 除了不能加入 CSS3 动画豪华大餐之外,基本效果卓越,没什么让人诟病的地方. 二:position:abso ...
 - CSS隐藏元素的几种方法
		
使用CSS隐藏元素的方法很多,在这里简单总结一下: 1.display:none display:none 应该是最常用的一种隐藏元素的方法,使用该方法隐藏的元素脱离文档流不占据空间,不会被浏览器解析 ...
 - css隐藏元素的六类13种方法
		
隐藏元素的方法 隐藏元素的方法可以总结为六类:直接隐藏.对溢出内容隐藏.对元素透明度进行调整.将元素移除当前屏幕.对元素的层级关系进行调整.对元素进行裁剪 只有对元素的透明度进行调整才可以点击,其余都 ...
 - 【前端】CSS隐藏元素的方法和区别
		
CSS隐藏元素的方法和区别 <!DOCTYPE html> <html lang="en"> <head> <meta charset=& ...
 - 有趣的css—隐藏元素的7种思路
		
css隐藏元素的7种思路 前言 display.visibility.opacity三个属性隐藏元素之间的异同点一直是前端面试面试的常考题. 属性 值 是否在页面上显示 注册点击事件是否有效 是否存在 ...
 - 用css隐藏元素的5种方法
		
.green { width: 100px; height: 100px; background-color: #a0ee00; text-align: center; float: left; ma ...
 - CSS隐藏元素的五种方法
		
1.opacity:0 2.visibility:hidden 3.diaplay:none 4.position:absolute display display属性依照词义真正隐藏元素.将disp ...
 
随机推荐
- 在Android中使用AlarmManager
			
AlarmManager是Android中的一种系统级别的提醒服务,它会为我们在特定的时刻广播一个指定的Intent.而使用Intent的时候,我们还需要它执行一个动作,如startActivity, ...
 - 11 ContextMenu 上下文菜单按钮
			
ContextMenu 上下文菜单 在res下的menu里写菜单项 在逻辑代码中 写OnCreateContextMenu() 方法 将菜单项添加到菜单 对菜单项进行监听 onContextItemS ...
 - Dynamics CRM  修改数据导出到EXCEL的最大条数
			
系统默认的最大导出数为一万,这个数可以通过执行以下SQL看到,那要增加导出的最大数量改变MaxRecordsForExportToExcel的值即可. <span style="fon ...
 - struts extjs 3.3.1 读取JSON文件
			
json文件和脚本代码: jsonSrc/jsonTxt1.json, { "personInfoList": [ { "id": 0, "name& ...
 - android fragement报nullexcption错误
			
,这题目起的够骚情了,原创傲慢的上校哦,转载请标明:http://blog.csdn.net/aomandeshangxiao/article/details/7753421 其实有些方法也是从网上找 ...
 - pig加载两个不同字段个数的文件?load file with different items(f1有42列,f2有43列读到一个对象中)
			
我文章提到,加载一个文件的部分列是可行.两列,你只读一列,没问题. 但是,两个文件,f1和f2,f1有42列,f2有43列,同时加载到一个流对象,如何? 答:成功加载.但是无结构(schema unk ...
 - TCP/IP入门(1)  --链路层
			
/** 本博客由汗青ZJF整理并发布, 转载请注明出处: http://blog.csdn.net/zjf280441589/article/category/1854365 */ TCP/IP体系结 ...
 - 分布式进阶(二)Ubuntu 14.04下安装Dockr图文教程(一)
			
当前,完全硬件虚拟化技术(KVM.Xen.Hyper-V 等)能在一个物理主机上很好地运行多个互相独立的操作系统,但这也带来一些问题:性能不佳,资源浪费,系统反应迟缓等.有时候对用户来说,完全的硬件虚 ...
 - Chipmunk僵尸物理对象的出现和解决(三)
			
首先是触摸移动反弹棒的代码: -(void)touchMoved:(CCTouch *)touch withEvent:(CCTouchEvent *)event{ CGPoint location ...
 - sed命令 linux
			
sed 实用工具是一个"编辑器",但它与其它大多数编辑器不同.除了不面向屏幕之外,它还是非交互式的.这意味着您必须将要对数据执行的命令插入到命令行或要处 理的脚本中.当显示它时,请 ...