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 给背景设置渐变色的方法
Sep 12 HTML / CSS
你正在寻找的CSS3 动画技术
Jul 27 HTML / CSS
CSS3 选择器 属性选择器介绍
Jan 21 HTML / CSS
CSS3用@font-face实现自定义英文字体
Sep 23 HTML / CSS
一款超酷的js+css3实现的3D标签云特效兼容ie7/8/9
Nov 18 HTML / CSS
纯CSS3实现滚动的齿轮动画效果
Jun 05 HTML / CSS
一款利用纯css3实现的win8加载动画的实例分析
Dec 11 HTML / CSS
CSS3 旋转立方体问题详解
Jan 09 HTML / CSS
html5 兼容IE6结构的实现代码
May 14 HTML / CSS
HTML5+CSS3绘制锯齿状的矩形
Mar 01 HTML / CSS
HTML5如何使用SVG的方法示例
Jan 11 HTML / CSS
使用CSS实现百叶窗效果示例代码
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
PHP数组内存耗用太多问题的解决方法
2010/04/05 PHP
php使用strtotime和date函数判断日期是否有效代码分享
2013/12/25 PHP
php截取中文字符串不乱码的方法
2013/12/25 PHP
php命令行使用方法和命令行参数说明
2014/04/08 PHP
采用ThinkPHP中F方法实现快速缓存实例
2014/06/13 PHP
PHP实现的比较完善的购物车类
2014/12/02 PHP
php+Ajax处理xml与json格式数据的方法示例
2019/03/04 PHP
表单(FORM)的一些实用效果代码
2007/03/25 Javascript
javascript实现上传图片并预览的效果实现代码
2011/04/11 Javascript
JS获取页面input控件中所有text控件并追加样式属性
2013/02/25 Javascript
js获取滚动距离的方法
2015/05/30 Javascript
简单介绍JavaScript的变量和数据类型
2015/06/03 Javascript
Javarscript中模块(module)、加载(load)与捆绑(bundle)详解
2017/05/28 Javascript
JavaScript数据结构与算法之队列原理与用法实例详解
2017/11/22 Javascript
JS实现点击按钮可实现编辑功能
2018/07/03 Javascript
JS数组中对象去重操作示例
2019/06/04 Javascript
微信小程序利用Canvas绘制图片和竖排文字详解
2019/06/25 Javascript
element实现合并单元格通用方法
2019/11/13 Javascript
JavaScript数组常用的增删改查与其他属性详解
2020/10/13 Javascript
Python制作爬虫采集小说
2015/10/25 Python
python实现逻辑回归的方法示例
2017/05/02 Python
详解django2中关于时间处理策略
2019/03/06 Python
python 利用pyttsx3文字转语音过程详解
2019/09/25 Python
通过实例解析Python文件操作实现步骤
2020/09/21 Python
python实现杨辉三角的几种方法代码实例
2021/03/02 Python
HTML5 video标签(播放器)学习笔记(二):播放控制
2015/04/24 HTML / CSS
英国露营设备和户外服装购物网站:Simply Hike
2019/05/05 全球购物
高中生物教学反思
2014/02/05 职场文书
《东方明珠》教学反思
2014/04/20 职场文书
授权委托书怎么写
2014/09/25 职场文书
大学生学习新党章思想汇报
2014/10/25 职场文书
2014年小学美术工作总结
2014/12/20 职场文书
六年级学生期末评语
2014/12/26 职场文书
酒店服务员岗位职责
2015/02/09 职场文书
失恋33天观后感
2015/06/11 职场文书
2016春季运动会前导词
2015/11/25 职场文书