CSS属性的默认值

时间:2015-12-25 23:28:48

标签: css css3

所以我正在阅读本书使用JavaScript编写的HTML5和CSS3编程,并且有使用表的练习,有一个css规则来显示和隐藏一些元素,但只有隐藏或实际上在css中显示:none属性是working和display:normal表示它在css中的值无效。

.hidden {
    display: none;
}
.visible {
    display: normal;
}

本书是否可能在显示方面出现了错误:正常属性还是我做错了什么?

1 个答案:

答案 0 :(得分:8)

是的,display: normal无效。

默认值display可能取决于您对“默认”的含义。

  1. Initial value

      

    每个属性都有一个初始值,在属性中定义   定义表。如果该属性不是inherited property,   并且cascade不会产生值,那么该属性的specified value就是initial value

    display的初始值为inline

  2. Inherited value,以防该属性具有可继承性

      

    Inheritance将父元素的属性值传播到   他们的孩子。元素上属性的inherited value   是元素的父元素上属性的计算值。

    display不可继承,因此无关紧要。

  3. User agents style sheets

      

    Conforming user agents必须应用默认样式表(或   表现得像他们一样)。用户代理的默认样式表应该   以满足的方式呈现文档语言的元素   对文档语言的一般表达期望(例如,对于   可视浏览器,HTML中的EM元素使用斜体显示   字体)。参见例如HTML user agent style sheet

    在该样式表中,浏览器使用display: blockdisplay: table等对某些元素进行样式设置。

  4. User style sheets

      

    用户可能能够指定特定的样式信息   文档。

  5. Author stylesheets

    这些是您的样式表。

  6. 级联将导致最新的适用(实际上它更复杂,因为有特殊性,作用域和!important等。

    如果要将某些属性设置为默认值,可以使用

    • initial(在CSS Cascade 3中引入)

        

      该媒体资源initial value成为其specified value

      然后,display: initial将等同于display: inline

    • inherit(在CSS2中引入)

        

      inherited value成为该属性的specified和   computed values

      然后,display: inherit将使用父元素的值(或根元素的初始值)。

    • unset(在CSS Cascade 3中引入)

        

      如果是继承属性,则将其视为inherit,   如果不是,则将其视为initial

      由于display不可继承,display: unset将等同于display: initial,即display: inline

    • revert(在CSS Cascade 4中引入)

      在作者样式表中使用时,

        

      将级联回滚到用户级别,以便计算specified value,就像没有指定作者级规则一样   这个属性。

      这可能就是你想要的。