下面我将详细讲解“谈谈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)的区别
基础教程推荐
- vue3中的ref()详解 2023-07-09
- JS+CSS实现大气的黑色首页导航菜单效果代码 2024-01-20
- 解决flex布局space-between最后一行左对齐的方法 2024-03-30
- CSS清除浮动的方法详解 2024-03-12
- SAP Cloud Application Programming bookshop 例子 Vue页面不能正常显示的原因分析 2023-10-08
- express框架+bootstrap美化ejs模板实例分析 2023-07-10
- 关于type=”file”的input框样式修改小结 2024-04-07
- js实现ajax分页完整实例 2022-12-28
- JS截取url中问号后面参数的值信息 2024-02-07
- 如何使用整个html表更新数据库(PHP,MySQL) 2023-10-26