黄子涵

查漏补缺——说说unset属性

问题

如题所示

答案

css3 unset属性

CSS 中的 initial、inherit、unset、revert、all

相关源码:

<div class="hzh-back-top" v-show="hzhShow" @click.stop="hzhGetTop">
      <img class="img1" src="../../static/_hzh-tortoise.svg" alt="">
      <img class="img2" src="../../static/hzh-tortoise.svg" alt="">
      <p>回到顶部</p>
    </div>  
.hzh-back-top:hover .img1 {
  display: none;
}

.hzh-back-top:hover .img2 {
  display: unset;
}

unset属性意思是未设置,而不是不设置,其实,它是关键字 initial 和 inherit 的组合。

什么意思呢?也就是当我们给一个 CSS 属性设置了 unset 的话:

  • 如果该属性是默认继承属性,该值等同于 inherit
  • 如果该属性是非继承属性,该值等同于 initial

那么display是否可以继承?

css中可以和不可以继承的属性

也就是display这个属性不可以继承,那么也就是此时的值等同于 initial,那么这个属性又是啥意思呢?

[译] 了解CSS的initial初始值

根据上面可以知道,这个值会直接继承浏览器的默认值,那么display这个属性,浏览器的默认值是什么呢?

详解CSS中的display属性

根据上面,我们可以知道display这个属性的默认值是inline-block,那么display: inline-block;又是啥意思呢?

CSS中的 display:inline-block

inline-block代表的是该元素高度和宽度可以设置,并且元素会在同一行显示。

如果把以下代码删除:

.hzh-back-top:hover .img1 {
  display: none;
}

,显示的效果是这样的:

image

按照原来的,光标移到乌龟上,乌龟壳会因为display: none;而消失,又因为乌龟会unset属性,这里省略一大堆默认属性,反正它是显示出来了。

image

今天又遇到的关于unset这个样式值的知识点,相关源码如下:

.banner-img{
                background-position: center center;
                background-repeat: no-repeat;
                background-attachment: fixed;
                background-size: cover;
                z-index: -1;
                transition: unset;
                &:hover {
                    transform: unset;
                    filter: unset;
                }
            }

这段代码有三个样式的样式值都被设置为unset

根据上面的知识点,我们可以知道

当我们给一个 CSS 属性设置了 unset 的话:

  • 如果该属性是默认继承属性,该值等同于 inherit
  • 如果该属性是非继承属性,该值等同于 initial

那么transitiontransformfilter这三个样式哪个是可以继承,哪个是不可以继承的呢?

transition属性的说明:

image

transform属性的说明:

image

filter属性的说明:

image

这三个属性不都是可以继承的属性,那么设置它们的样式值为unset之后,就按照默认值来设置。

posted @ 2022-07-05 20:38  黄子涵  阅读(471)  评论(0编辑  收藏  举报