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实现的8种Loading动画效果
Jul 05 HTML / CSS
纯CSS3制作漂亮带动画效果的主机价格表
Apr 25 HTML / CSS
CSS3 animation ? steps 函数详解
Aug 30 HTML / CSS
js实现移动端H5页面手指滑动刻度尺功能
Nov 16 HTML / CSS
HTML5 canvas基本绘图之填充样式实现
Jun 27 HTML / CSS
解决canvas转base64/jpeg时透明区域变成黑色背景的方法
Oct 23 HTML / CSS
Html5新标签datalist实现输入框与后台数据库数据的动态匹配
May 18 HTML / CSS
解决HTML5手机端页面缩放的问题
Oct 27 HTML / CSS
在canvas上实现元素图片镜像翻转动画效果的方法
Mar 20 HTML / CSS
h5网页水印SDK的实现代码示例
Feb 19 HTML / CSS
关于解决iframe标签嵌套问题的解决方法
Mar 04 HTML / CSS
css背景和边框标签实例详解
May 21 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与CSS语法冲突的方法
2015/03/02 PHP
php从文件夹随机读取文件的方法
2015/06/01 PHP
PHP导出带样式的Excel示例代码
2016/08/28 PHP
PHP7新增运算符用法实例分析
2016/09/26 PHP
Kindeditor编辑器添加图片上传水印功能(php代码)
2017/08/03 PHP
php打开本地exe程序,js打开本地exe应用程序,并传递相关参数方法
2018/02/06 PHP
php生成微信红包数组的方法
2019/09/05 PHP
jquery 图片上传按比例预览插件集合
2011/05/28 Javascript
js特殊字符过滤的示例代码
2014/03/05 Javascript
jquery动态加载js/css文件方法(自写小函数)
2014/10/11 Javascript
jQuery EasyUI常用数据验证汇总
2016/09/18 Javascript
JavaScript 是什么意思
2016/09/22 Javascript
node.js 中间件express-session使用详解
2017/05/20 Javascript
修改 bootstrap table 默认detailRow样式的实例代码
2017/07/21 Javascript
vue内置指令详解
2018/04/03 Javascript
使用vuex缓存数据并优化自己的vuex-cache
2018/05/30 Javascript
vue-cli 目录结构详细讲解总结
2019/01/15 Javascript
js array数组对象操作方法汇总
2019/03/18 Javascript
Vue中Table组件Select的勾选和取消勾选事件详解
2019/03/19 Javascript
如何换个角度使用VUE过滤器详解
2019/09/11 Javascript
用ReactJS和Python的Flask框架编写留言板的代码示例
2015/12/19 Python
详解Swift中属性的声明与作用
2016/06/30 Python
wxpython中自定义事件的实现与使用方法分析
2016/07/21 Python
python3实现抓取网页资源的 N 种方法
2017/05/02 Python
Django中的CBV和FBV示例介绍
2018/02/25 Python
基于python实现破解滑动验证码过程解析
2020/05/28 Python
PyCharm中如何直接使用Anaconda已安装的库
2020/05/28 Python
tensorflow下的图片标准化函数per_image_standardization用法
2020/06/30 Python
新东方旗下远程教育网站:新东方在线
2020/03/19 全球购物
乌克兰数字设备、配件和智能技术的连锁商店:KTC
2020/08/18 全球购物
报关简历自我评价怎么写
2013/09/19 职场文书
实习协议书范本
2014/04/22 职场文书
2014党员学习习主席讲话思想汇报
2014/09/15 职场文书
2016大学生形势与政策心得体会
2016/01/12 职场文书
JavaScript实现酷炫的鼠标拖尾特效
2022/02/18 Javascript
Sentry的安装、配置、使用教程(Sentry日志手机系统)
2022/07/23 Python