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系列之3D制作方法案例
Aug 14 HTML / CSS
你应该知道的30个css选择器
Mar 19 HTML / CSS
CSS3模拟IOS滑动开关效果
Sep 28 HTML / CSS
CSS3 分类菜单效果
May 27 HTML / CSS
CSS3 @media的基本用法总结
Sep 10 HTML / CSS
video结合canvas实现视频在线截图功能
Jun 25 HTML / CSS
HTML5中Canvas与SVG的画图原理比较
Jan 16 HTML / CSS
html5+svg学习指南之SVG基础知识
Dec 17 HTML / CSS
详解html5 shiv.js和respond.min.js
Jan 24 HTML / CSS
canvas 如何绘制线段的实现方法
Jul 12 HTML / CSS
Canvas绘制像素风图片的示例代码
Sep 25 HTML / CSS
CSS浮动引起的高度塌陷问题
Aug 05 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
星际争霸教主Flash的ID由来:你永远不会知道他之前的ID是www!
2019/01/18 星际争霸
PHP中实现进程间通讯
2006/10/09 PHP
ThinkPHP应用模式扩展详解
2014/07/16 PHP
php实现的ping端口函数实例
2014/11/12 PHP
php使用ereg验证文件上传的方法
2014/12/16 PHP
php生成图片缩略图的方法
2015/04/07 PHP
Redis构建分布式锁
2017/03/28 PHP
A标签中通过href和onclick传递的this对象实现思路
2013/04/19 Javascript
千分位数字格式化(用逗号隔开 代码已做了修改 支持0-9位逗号隔开)的JS代码
2013/12/05 Javascript
简述JavaScript提交表单的方式 (Using JavaScript Submit Form)
2016/03/18 Javascript
Markdown与Bootstrap相结合实现图片自适应属性
2016/05/04 Javascript
jQuery配合coin-slider插件制作幻灯片效果的流程解析
2016/05/13 Javascript
JavaScript知识点总结(四)之逻辑OR运算符详解
2016/05/31 Javascript
js匿名函数作为函数参数详解
2016/06/01 Javascript
Javascript获取background属性中url的值
2016/10/17 Javascript
jQuery插件HighCharts绘制2D半圆环图效果示例【附demo源码下载】
2017/03/09 Javascript
jQuery进阶实践之利用最优雅的方式如何写ajax请求
2017/12/20 jQuery
js+html5实现手机九宫格密码解锁功能
2018/07/30 Javascript
详解一个基于react+webpack的多页面应用配置
2019/01/21 Javascript
更强大的vue ssr实现预取数据的方式
2019/07/19 Javascript
使用Vue实现调用接口加载页面初始数据
2019/10/28 Javascript
js实现小时钟效果
2020/03/25 Javascript
vue使用screenfull插件实现全屏功能
2020/09/17 Javascript
python2.7读取文件夹下所有文件名称及内容的方法
2018/02/24 Python
python 实现在Excel末尾增加新行
2018/05/02 Python
Python分析彩票记录并预测中奖号码过程详解
2019/07/09 Python
pandas 缺失值与空值处理的实现方法
2019/10/12 Python
Python:type、object、class与内置类型实例
2019/12/25 Python
基于python实现语音录入识别代码实例
2020/01/17 Python
HTML5 拖拽批量上传文件的示例代码
2018/03/28 HTML / CSS
Html5写一个简单的俄罗斯方块小游戏
2019/12/03 HTML / CSS
创建卫生先进单位实施方案
2014/03/10 职场文书
公司节能减排倡议书
2014/05/14 职场文书
2019年恭贺升学祝福语集锦
2019/08/15 职场文书
JS异步堆栈追踪之为什么await胜过Promise
2021/04/28 Javascript
【海涛七七解说】DCG第二周:DK VS 天禄
2022/04/01 DOTA