下面我将详细讲解“谈谈CSS隐藏元素(display,visibility)的区别”。
下面我将详细讲解“谈谈CSS隐藏元素(display,visibility)的区别”。
1. display与visibility的区别
1.1 display属性
display属性用于设置元素在页面中的显示方式。通过设置display属性,我们可以让元素被隐藏或显示。常见的display取值包括:none、block、inline、inline-block等。
- none:完全隐藏元素,不占据页面文档流中的位置和空间。
- block:将元素显示为块级元素,会在前后添加换行符,且默认占满父容器的宽度。
- inline:将元素显示为内联元素,不会添加换行符,会自动根据内容大小进行调整。
- inline-block:将元素显示为同行的块级元素,不会添加换行符,也能够通过设置宽高等样式进行调整大小和位置。
以文字与图片为例,如下所示:
.text {
display: none;
}
.img {
display: block;
}
上述代码中,将文本元素设置为none,即在页面中完全隐藏元素。将图片元素设置为block,表示将图片元素显示为块级元素,并占用父容器的宽度,图片能够正常显示。
1.2 visibility属性
visibility属性用于设置元素的可见性。通过设置visibility属性,我们可以让元素被隐藏或显示。visibility常见的取值包括:visible、hidden、collapse。
- visible:默认值,元素可见。
- hidden:元素隐藏,但在页面文档流中占据位置和空间。
- collapse:元素被隐藏,且表格边框被合并在一起。
以按钮为例,如下所示:
button {
visibility: hidden;
}
上述代码中,将按钮元素的visibility设置为hidden,即使按钮元素被隐藏,但在页面文档流中仍然占据位置和空间。
2. display与visibility的适用场景
2.1 display的适用场景
display属性适用于需要隐藏或显示元素,并且需要影响页面布局的情况下,比如弹出层、交互动效等。
以弹出层为例,如下所示:
.modal {
display: none;
position: fixed;
top: 0;
left: 0;
right: 0;
bottom: 0;
z-index: 999;
}
.modal.show {
display: block;
}
上述代码中,将弹出层元素的display设置为none,表示默认情况下弹出层不显示。当需要展示弹出层时,通过为元素添加show类名,将弹出层元素display设置为block,即可在页面中显示弹出层。
2.2 visibility的适用场景
visibility属性适用于需要实现元素隐藏或显示,但不影响页面布局的情况下,比如鼠标悬停显示提示信息等。
以提示信息为例,如下所示:
.tip {
visibility: hidden;
position: absolute;
top: 20px;
left: 20px;
background-color: #fff;
padding: 10px;
box-shadow: 1px 1px 3px rgba(0,0,0,0.3);
}
.hover {
position: relative;
}
.hover:hover .tip {
visibility: visible;
}
上述代码中,将提示信息元素的visibility设置为hidden,表示默认情况下提示信息不显示。当鼠标悬停在提示信息元素的父元素上时,为父元素添加hover类名,通过设置子元素的visibility为active来显示提示信息。
本文标题为:谈谈CSS隐藏元素(display,visibility)的区别


基础教程推荐
- JS实现点击颜色块切换指定区域背景颜色的方法 2024-03-09
- Layui Table 的列隐藏问题 2023-09-13
- javascript 取小数点后几位几种方法总结 2023-12-21
- shell之发送html格式邮件 2023-10-27
- echart在微信小程序的使用简单示例 2023-12-12
- css float left布局换行不正常问题的解决 2024-01-25
- js 实现浏览历史记录示例 2024-01-06
- AJAX应用实例之检测用户名是否唯一(实例代码) 2023-02-14
- Ajax请求和Filter配合案例解析 2023-01-26
- 关于css:如何在离子中心对齐的标题上添加图标 2022-09-21