谈谈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)的区别 - Python技术站

(0)
上一篇 2023年6月10日
下一篇 2023年6月10日

相关文章

  • jQuery拖拽插件gridster使用指南

    jQuery拖拽插件gridster使用指南 简介 gridster是一个优秀的jQuery拖拽插件,可以帮助用户快速实现可拖拽、可排序的网格布局。本文将对gridster的使用进行详细介绍。 安装 使用gridster之前,需要引入jquery和gridster的javascript文件和css文件,可以直接从官方网站下载或使用npm等包管理工具安装,在H…

    css 2023年6月9日
    00
  • 深入解析动态加载css的实现方法

    深入解析动态加载CSS的实现方法需要以下步骤: 1. 创建动态插入CSS的函数 我们可以通过JS动态创建 标签,并将其插入到文档头部,从而实现CSS的动态加载。下面是一个实现动态插入CSS的函数: function dynamicLoadCss(cssUrl) { const link = document.createElement(‘link’); li…

    css 2023年6月9日
    00
  • webpack5的loader配置小白学习篇

    一、什么是Webpack Loader Webpack是一个模块打包工具,可以将各种资源文件(JS、CSS、图片等)打包成网页中的静态资源。但是Webpack只认识JS文件,如果我们直接把CSS文件或图片文件引入到JS文件中,Webpack就会报错。这时就需要使用Webpack Loader,将Webpack不认识的文件转化成Webpack能够识别的模块。 …

    css 2023年6月9日
    00
  • css 权重值(层叠性)实例详解

    当一个 HTML 元素有多条 CSS 规则可用时,就需要计算 CSS 属性的优先级。CSS 属性的优先级(也称为权重值或层叠性)由选择器的特定性和源排序决定。 我们可以通过以下公式计算 CSS 属性的优先级: 内联样式(通过 style 属性定义的样式)——权重值为 1000。 ID 选择器——权重值为 100。 类选择器、属性选择器和伪类选择器——权重值为…

    css 2023年6月10日
    00
  • css 优先级关系

    CSS 优先级关系决定了当多个 CSS 规则同时作用于同一个元素时,哪一条 CSS 规则会被优先应用。具体来说,CSS 优先级关系是根据优先级值进行比较的,优先级值越大的 CSS 规则越具有优先权。下面我将一步步为您介绍 CSS 优先级关系的完整攻略。 一、优先级值的计算规则 优先级值是由选择器中的各个组成部分共同组成的。下面是各个部分的优先级值: 选择器部…

    css 2023年6月10日
    00
  • CSS3之transition实现下划线的示例代码

    下面我将为您提供关于“CSS3之transition实现下划线的示例代码”的完整攻略: 一、transition基本概念 在学习transition之前,先简述一下transition的基本概念:transition是CSS的一个属性,用于指定一个元素在属性变化时的“过渡”。例如,当一个元素的宽度从200px变为300px时,通过transition将会过渡…

    css 2023年6月9日
    00
  • extjs grid设置某列背景颜色和字体颜色的方法

    下面是关于ExtJS Grid Panel中设置某列背景颜色和字体颜色的方法的攻略。我们先来了解一下ExtJS中的Grid Panel。 什么是 ExtJS Grid Panel? ExtJS中的Grid Panel是一种可用于显示表格数据的面板,可以用于显示大量数据,并提供了诸如排序、过滤、分页等功能。可以用ExtJS中的Store和Model对数据进行管…

    css 2023年6月9日
    00
  • CSS常用技巧十则

    下面将详细讲解“CSS常用技巧十则”的完整攻略。该攻略包含以下10个技巧: 技巧一:使用盒模型 CSS盒模型是指一个元素的内容(content)、内边距(padding)、边框(border)和外边距(margin)组成的矩形框模型。在CSS当中,可以通过box-sizing属性来定义盒模型的计算方式。 示例 设计一个宽度为300像素、内边距为10像素、边框…

    css 2023年6月9日
    00
合作推广
合作推广
分享本页
返回顶部