加入收藏 | 设为首页 | 会员中心 | 我要投稿 核心网 (https://www.hxwgxz.com/)- 科技、建站、经验、云计算、5G、大数据,站长网!
当前位置: 首页 > 电商 > 正文

CSS中的指定值、初始值和计算值学习教程

发布时间:2020-03-15 09:57:30 所属栏目:电商 来源:站长网
导读:副标题#e# CSS 中的声明,由 CSS 的特性和值,中间以 : 隔开组成。 我们可以使用 CSS 选择器,为选中的元素设置需要的样式。 在介绍 CSS 的特性和值的时候,特地的提到了浏览器应该怎样处理错误的值 -- 应该将包含错误值,不符合句法的值的声明直接忽略。然
副标题[/!--empirenews.page--]

CSS 中的声明,由 CSS 的特性和值,中间以 ":" 隔开组成。
我们可以使用 CSS 选择器,为选中的元素设置需要的样式。
在介绍 CSS 的特性和值的时候,特地的提到了浏览器应该怎样处理错误的值 -- 应该将包含错误值,不符合句法的值的声明直接忽略。然而有些浏览器却按照自己的方式做了某些纠正,也就是浏览器容错。
那么,有没有想过,在我们给予一个特性正确的值的情况下,浏览器应该怎样处理呢?是否最终你看到的就是你设置的值呢?答案是否定的!
当浏览器解析了一个文档 ( document ) 并且生成了文档树 ( document tree ),那么,它必须为文档树中的每一个元素,根据目标媒介类型所适用的每一个特性,指定一个值。
而开发者给某个元素的 CSS 特性设置某个值,到这个元素的特性值被计算渲染,也就是得到最终的值,需要经过四步计算:
(1)通过指定值 ( specified value ) 确定这个值;
(2)将这个值分解为一个可以用来继承的值,即计算后的值 ( computed value );
(3)必要情况下把计算后的值转换成一个绝对的值,即使用值 ( used value )
(4)根据显示环境的限制,改变使用值以使之能够显示在用户端,最后这个值被称作实际值 ( actual value )。
这些值的计算过程类似工资的计算过程,你的应得工资是一个设置值,实际工资还要减掉你的缺勤,保险,个人所得税等……实际计算出来的数字才是应用到你身上的具体数额。
下面来详细的介绍这四个步骤的四种值。

一、指定值
一般来讲,开发者设定的值,即为指定值,但是最终这个值的确定还需考虑其他几个方面( 按照优先顺序排列 )。
1.层叠顺序
首先考虑有层叠顺序的情况,即开发者明确了设置了 CSS 特性的值。
层叠顺序会影响开发者设定的值,所以,应该根据层叠顺序来确定声明的优先级别,优先级高的声明才会起作用。关于层叠顺序,后续会有详细的说明。
例如,开发者在定义样式的时候,加了 '!important' 的声明要优于未加 '!important' 的声明。

CSS Code复制内容到剪贴板

div{   

    height : 100px;   

    height : 130px !important;   

}  

其中,带有 '!important' 的 height 声明才是 指定值。
2.继承( inheritance )
如果没有明确的设置这个值,那么会先考虑它是否继承了父元素的值。这时候指定值使用它父元素的值,通常是父元素的计算值。
例如:

XML/HTML Code复制内容到剪贴板

<p style="color:red;">The greet <em>is</em> good!</p>  

EM 元素没有指定颜色,他将继承父元素的颜色用来显示字符串 "is"。因此,EM 元素是红色。EM 元素 'color' 特性的指定值在没有层叠影响的情况下,就是 "red"。

二、初始值
最后,在不存在以上两种情况的时候,使用元素的初始值。
如果不设置元素的 'width',它的指定值就是 "auto";对于 'font-size',不设置的情况下,其指定值是 "medium"。
关于指定值在 JavaScript 中的获取方法,可以使用 "element.style.property" 语句模式:

CSS Code复制内容到剪贴板

<p id="container" style="color:red;">The headline <em id="sub">is</em> important!</p>   

<div id="info"></div>   

<script type="text/javascript">   

    window.onload = function() {   

        var container = document.getElementById("container");   

        var sub = document.getElementById("sub");   

        var info = document.getElementById("info");   

        info.innerHTML = "container width : " + container.style.width  

                +"<br/>container color : " + container.style.color  

(编辑:核心网)

【声明】本站内容均来自网络,其相关言论仅代表作者个人观点,不代表本站立场。若无意侵犯到您的权利,请及时与联系站长删除相关内容!

热点阅读