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 相关文章推荐
网页切图的CSS和布局经验与要点
Apr 09 HTML / CSS
CSS3中线性颜色渐变的一些实现方法
Jul 14 HTML / CSS
html5视频播放_动力节点Java学院整理
Jul 13 HTML / CSS
逼真的HTML5树叶飘落动画
Mar 01 HTML / CSS
详解HTML5中的picture元素响应式处理图片
Jan 03 HTML / CSS
使用HTML5 Geolocation实现一个距离追踪器
Apr 09 HTML / CSS
使用canvas来完成线性渐变和径向渐变的功能的方法示例
Jul 25 HTML / CSS
canvas绘制图片drawImage使用方法
Sep 15 HTML / CSS
HTML5逐步分析实现拖放功能的方法
Sep 30 HTML / CSS
html+css合并表格边框的示例代码
Mar 31 HTML / CSS
CSS link与@import的区别和用法解析
May 07 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
介绍几个array库的新函数 php
2006/12/29 PHP
PHP中判断文件存在使用is_file还是file_exists?
2015/04/03 PHP
php开发时容易忘记的一些技术细节
2016/02/03 PHP
关于laravel后台模板laravel-admin select框的使用详解
2019/10/03 PHP
extjs之去除s.gif的影响
2010/12/25 Javascript
jquery.boxy弹出框(后隔N秒后自动隐藏/自动跳转)
2013/01/15 Javascript
js中方法重载如何实现?以及函数的参数问题
2013/08/01 Javascript
JavaScript中textRange对象使用方法小结
2015/03/24 Javascript
Node.js实现Excel转JSON
2015/04/24 Javascript
jQuery无刷新分页完整实例代码
2015/10/27 Javascript
JavaScript动态创建form表单并提交的实现方法
2015/12/10 Javascript
解决JS组件bootstrap table分页实现过程中遇到的问题
2016/04/21 Javascript
解决BootStrap Fileinput手机图片上传显示旋转问题
2017/06/01 Javascript
jQuery实现高级检索功能
2019/05/28 jQuery
详解vue 中 scoped 样式作用域的规则
2020/09/14 Javascript
微信小程序canvas实现签名功能
2021/01/19 Javascript
[04:15]DOTA2-DPC中国联赛1月19日Recap集锦
2021/03/11 DOTA
python将字符串转换成数组的方法
2015/04/29 Python
Python中collections模块的基本使用教程
2018/12/07 Python
Python设计模式之组合模式原理与用法实例分析
2019/01/11 Python
numpy下的flatten()函数用法详解
2019/05/27 Python
python破解bilibili滑动验证码登录功能
2019/09/11 Python
Python 实现将数组/矩阵转换成Image类
2020/01/09 Python
python实现在内存中读写str和二进制数据代码
2020/04/24 Python
Python Opencv图像处理基本操作代码详解
2020/08/31 Python
使用CSS媒体查询(Media Queries)和JavaScript判断浏览器设备类型的方法
2014/04/03 HTML / CSS
详解HTML5中ol标签的用法
2015/09/08 HTML / CSS
英国户外玩具儿童游乐设备网站:TP Toys(蹦床、攀爬框架、秋千、滑梯和游戏屋)
2018/04/09 全球购物
100%有机精油,美容油:House of Pure Essence
2018/10/30 全球购物
会计专业毕业生求职信分享
2014/01/03 职场文书
少先队入队活动方案
2014/02/08 职场文书
船舶工程技术专业求职信
2014/08/07 职场文书
关于长城的导游词
2015/01/30 职场文书
工作自我推荐信范文
2015/03/25 职场文书
MySQL 使用索引扫描进行排序
2021/06/20 MySQL
java中用float时,数字后面加f,这样是为什么你知道吗
2021/09/04 Java/Android