css中有哪些方式可以隐藏页面元素及区别


Posted in HTML / CSS onJune 16, 2022

前言

在平常的样式排版中,我们经常遇到将某个模块隐藏的场景

通过css隐藏元素的方法有很多种,它们看起来实现的效果是一致的

但实际上每一种方法都有一丝轻微的不同,这些不同决定了在一些特定场合下使用哪一种方法

实现方式

通过css实现隐藏元素方法有如下:

  • display:none
  • visibility:hidden
  • opacity:0
  • 设置height、width模型属性为0
  • position:absolute
  • clip-path

display:none

设置元素的displaynone是最常用的隐藏元素的方法

.hide {
        display:none;
    }

将元素设置为display:none后,元素在页面上将彻底消失

元素本身占有的空间就会被其他元素占有,也就是说它会导致浏览器的重排和重绘

消失后,自身绑定的事件不会触发,也不会有过渡效果

特点:元素不可见,不占据空间,无法响应点击事件

visibility:hidden

设置元素的visibilityhidden也是一种常用的隐藏元素的方法

从页面上仅仅是隐藏该元素,DOM结果均会存在,只是当时在一个不可见的状态,不会触发重排,但是会触发重绘

.hidden{
        visibility:hidden
     }

给人的效果是隐藏了,所以他自身的事件不会触发

特点:元素不可见,占据页面空间,无法响应点击事件

opacity:0

opacity属性表示元素的透明度,将元素的透明度设置为0后,在我们用户眼中,元素也是隐藏的

不会引发重排,一般情况下也会引发重绘

如果利用 animation 动画,对 opacity 做变化(animation会默认触发GPU加速),则只会触发 GPU 层面的 composite,不会触发重绘

.transparent {
        opacity:0;
    }

由于其仍然是存在于页面上的,所以他自身的的事件仍然是可以触发的,但被他遮挡的元素是不能触发其事件的

需要注意的是:其子元素不能设置opacity来达到显示的效果

特点:改变元素透明度,元素不可见,占据页面空间,可以响应点击事件

设置height、width属性为0

将元素的marginborderpaddingheightwidth等影响元素盒模型的属性设置成0,如果元素内有子元素或内容,还应该设置其overflow:hidden来隐藏其子元素

.hiddenBox {
        margin:0;     
        border:0;
        padding:0;
        height:0;
        width:0;
        overflow:hidden;
    }

特点:元素不可见,不占据页面空间,无法响应点击事件

position:absolute

将元素移出可视区域

.hide {
       position: absolute;
       top: -9999px;
       left: -9999px;
    }

特点:元素不可见,不影响页面布局

clip-path

通过裁剪的形式

.hide {
      clip-path: polygon(0px 0px,0px 0px,0px 0px,0px 0px);
    }

特点:元素不可见,占据页面空间,无法响应点击事件

小结

最常用的还是display:nonevisibility:hidden,其他的方式只能认为是奇招,它们的真正用途并不是用于隐藏元素,所以并不推荐使用它们

区别

关于display: nonevisibility: hiddenopacity: 0的区别,如下表所示:

  display: none visibility: hidden opacity: 0
页面中 不存在 存在 存在
重排 不会 不会
重绘 不一定
自身绑定事件 不触发 不触发 可触发
transition 不支持 支持 支持
子元素可复原 不能 不能
被遮挡的元素可触发事件 不能

到此这篇关于css中有哪些方式可以隐藏页面元素及区别的文章就介绍到这了,更多相关css隐藏页面元素内容请搜索三水点靠木以前的文章或继续浏览下面的相关文章,希望大家以后多多支持三水点靠木!

 
HTML / CSS 相关文章推荐
CSS3中Transform动画属性用法详解
Jul 04 HTML / CSS
CSS3 选择器 基本选择器介绍
Jan 21 HTML / CSS
一款基于css3麻将筛子3D翻转特效的实例教程
Dec 31 HTML / CSS
利用纯CSS3实现动态的自行车特效源码
Jan 20 HTML / CSS
html5定制表单_动力节点Java学院整理
Jul 11 HTML / CSS
html5 Canvas画图教程(10)—把面拆成线条模拟出圆角矩形
Jan 09 HTML / CSS
html5开发之viewport使用
Oct 17 HTML / CSS
基于html5 DeviceOrientation 实现微信摇一摇功能
Sep 25 HTML / CSS
使用canvas对多图片拼合并导出图片的方法
Aug 28 HTML / CSS
详解Canvas实用库Fabric.js使用手册
Jan 07 HTML / CSS
wordpress添加Html5的表单验证required方法小结
Aug 18 HTML / CSS
详解CSS3浏览器兼容
Dec 24 HTML / CSS
CSS控制继承中的height能变为可继承吗
Jun 10 #HTML / CSS
css样式important规则的正确使用方式
Jun 10 #HTML / CSS
分享几个实用的CSS代码块
Jun 10 #HTML / CSS
html中两种获取标签内的值的方法
Jun 10 #HTML / CSS
html5+实现plus.io进行拍照和图片等获取
Jun 01 #HTML / CSS
基于CSS制作创意端午节专属加载特效
聊聊CSS粘性定位sticky案例解析
Jun 01 #HTML / CSS
You might like
模板引擎Smarty深入浅出介绍
2006/12/06 PHP
php while循环得到循环次数
2013/10/26 PHP
php实现的Cookies操作类实例
2014/09/24 PHP
PHP中用mysqli面向对象打开连接关闭mysql数据库的方法
2016/11/05 PHP
laravel如何开启跨域功能示例详解
2017/08/31 PHP
jquery 双色表格实现代码
2009/12/08 Javascript
动态载入/删除/更新外部 JavaScript/Css 文件的代码
2010/07/03 Javascript
5秒后跳转效果(setInterval/SetTimeOut)
2013/05/03 Javascript
JQuery 文本框回车跳到下一个文本框示例代码
2013/08/30 Javascript
Js nodeType 属性全面解析
2013/11/14 Javascript
用Jquery选择器计算table中的某一列某一行的合计
2014/08/13 Javascript
JavaScript实现鼠标滑过处生成气泡的方法
2015/05/16 Javascript
js实现获取div坐标的方法
2015/11/16 Javascript
jQuery中的siblings()是什么意思(推荐)
2016/12/29 Javascript
JavaScript实现向select下拉框中添加和删除元素的方法
2017/03/07 Javascript
jQuery、layer实现弹出层的打开、关闭功能
2017/06/28 jQuery
vue webuploader 文件上传组件开发
2017/09/23 Javascript
vue 配置多页面应用的示例代码
2018/10/22 Javascript
apicloud拉起小程序并传递参数的方法示例
2018/11/21 Javascript
vue setInterval 定时器失效的解决方式
2020/07/30 Javascript
利用js canvas实现五子棋游戏
2020/10/11 Javascript
Python自定义类的数组排序实现代码
2016/08/28 Python
selenium+python实现自动登录脚本
2018/04/22 Python
python 自动重连wifi windows的方法
2018/12/18 Python
Python爬虫库requests获取响应内容、响应状态码、响应头
2020/01/25 Python
Python 存取npy格式数据实例
2020/07/01 Python
HTML5的结构和语义(5):交互
2008/10/17 HTML / CSS
美国中小型企业领先的办公家具供应商:Office Designs
2016/11/26 全球购物
瑞典灯具和照明网上商店:Lamp24.se
2018/03/17 全球购物
软件测试工程师面试问题精选
2016/10/28 面试题
2014年教师节活动总结
2014/08/29 职场文书
担保书格式
2015/01/20 职场文书
幼儿园教师个人总结
2015/02/05 职场文书
贫民窟的百万富翁观后感
2015/06/09 职场文书
一文了解MySQL二级索引的查询过程
2022/02/24 MySQL
instantclient客户端 连接oracle数据库
2022/04/26 Oracle