# 显示隐藏

# display

display属性是我们在前端开发中常常使用的一个属性,其中,最常见的有:

  • none 这个值表示此元素将不被显示
  • block 此元素将显示为块级元素
  • inline 此元素会被显示为内联元素
  • inline-block 设置了inline-block属性的元素既具有block元素可以设置width和height属性的特性,又保持了inline元素不换行的特性。
  • inherit 规定应该从父元素继承 display 属性的值。

# display:none

none这个值表示此元素将不被显示。用户工作上,经常使用dispal:noe来隐藏元素,和显示元素,达到一些切换元素效果。

# display:block

使用了display:block;之后, 此元素将显示为块级元素,此元素前后会带有换行符。我们先来回顾以下块级元素是什么,他有什么特点。

既然要区分块级元素和行内元素,就得先说说标准文档流了。标准文档流:简称标准流,指的是在不使用其他的与排列和定位相关的css规则时,各种元素的排列规则。于是,我们将“各种元素”分为块级元素行内元素。(注:实际上还有空元素,如<br>用于换行,<hr>为一条水平线,这里对空元素不做过多讨论)

块级元素特点:

总是以一个块的形式表现出来,占领一整行。若干同级块元素会从上之下依次排列(使用float属性除外)。 可以设置高度、宽度、各个方向外边距(margin)以及各个方向的内边距(padding)。 当宽度(width)缺省时,它的宽度时其容器的100%,除非我们给它设定了固定的宽度。 块级元素中可以容纳其他块级元素或行内元素。 常见的块级元素由<p><div><h1><li>等等。 块级元素的display属性值默认为block。

行内元素特点:

它不会单独占据一整行,而是只占领自身的宽度和高度所在的空间。若干同级行内元素会从左到右(即某个行内元素可以和其他行内元素共处一行),从上到下依次排列。 行内元素不可以设置高度、宽度,其高度一般由其字体的大小来决定,其宽度由内容的长度控制。 行内元素只能设置左右的margin值和左右的padding值,而不能设置上下的margin值和上下的padding值。因此我们可以通过设置左右的padding值来改变行内元素的宽度。 常见的行内元素由<a><em><img>等等。 行内元素一般不可以包含块级元素。 块级元素的display属性值默认为inline。

ok!简单回顾了块级元素和行内元素之后,我们就可以进行下一步讲解了。

通过对一个行内元素设置display: block;可以将行内元素设置为块级元素,进而设置它的宽高和上下左右的padding和margin。

# display:inline

此元素会被显示为内联元素,元素前后没有换行符。在第二部分中,我们介绍了行内元素和块级元素。显然,display:inline的作用即可以将一个块级元素转换成行内元素,那么这个块级元素将不能再设置宽和高以及上下方向的marginpadding

# visibility

描述
visible 默认值。元素是可见的。
hidden 元素是不可见的。
collapse 当在表格元素中使用时,此值可删除一行或一列,但是它不会影响表格的布局。被行或列占据的空间会留给其他内容使用。如果此值被用在其他的元素上,会呈现为 "hidden"。
inherit 规定应该从父元素继承 visibility 属性的值。
.hidden {
    visibility:hidden;
}

# 隐藏元素 - display:none或visibility:hidden

隐藏一个元素可以通过把display属性设置为"none",或把visibility属性设置为"hidden"。但是请注意,这两种方法会产生不同的结果。

display:none可以隐藏某个元素,且隐藏的元素不会占用任何空间。也就是说,该元素不但被隐藏了,而且该元素原本占用的空间也会从页面布局中消失

visibility:hidden可以隐藏某个元素,但隐藏的元素仍需占用与未隐藏之前一样的空间。也就是说,该元素虽然被隐藏了,但仍然会影响布局

# 总结7中隐藏元素的办法

  1. CSS display的值是none。(该元素是不会在页面上显示)
div{
    display: none;
}
  1. type="hidden"的表单元素。(该元素是不会在页面上显示)

  2. 宽度和高度都显式设置为0。(该元素是会在页面上显示)

div{
    width: 0;
    height: 0;
}
  1. 一个祖先元素是隐藏的,(该祖先以及祖先以下的元素是不会在页面上显示)

  2. CSS visibility的值是hidden(该元素是会在页面上显示,还占原来的位置)

div{
    visibility: hidden;
}
  1. CSS opacity的指是0(该元素是会在页面上显示,还占原来的位置)
div{
    opacity: 0;
}
  1. 将position设为absolute然后将位置设到不可见区域
div{
   position: absolute;
   top: -9999px;
   left: -9999px;
}
更新时间: 2021年8月30日星期一晚上9点32分