CSS 属性值的分类

  • CSS 属性值的分类
    • ⑴ 指定值
    • ⑵ 计算值
    • ⑶ 使用值
    • ⑷ 实际值
  • ♣ 结束语 和 友情链接

CSS 属性值的分类

  • 开发者设定的 指定值 ≠ 实际值的情况
  • 浏览器 和 属性值的关系
    • 浏览器给 元素赋值: 当浏览器解析了一个文档 ( document ) 并且生成了文档树 ( document tree )

      • 它必须为 文档树中的每一个元素,

        • 根据 目标媒介类型 所适用的 每一个特性,指定 一个值。

  • 从 指定值 到 实际值的 过程: 指定值 → 计算值 → 使用值 → 实际值

    • 值的 4 步计算: 开发者 设置的属性的指定值,到这个 元素的属性值 被计算渲染,得到 最终的值,需要经过 四步计算:

      • 指定值: 通过规则 确定一个“指定值 ( specified value ) ”
      • 计算值: 将这个值 转换成 一个 可以用来 继承的值 = 计算值 = 计算后的值 ( computed value );
      • 使用值: 必要情况下,把计算后的值 转换成一个绝对的值 = 使用值 ( used value )
      • 实际值: 根据 显示环境的限制,使用值 转换成 能够 显示在用户端,最后这个值 被称作 实际值 ( actual value)。

⑴ 指定值

  • 指定值: 优先级最高的指定值 + 继承值 + 初始值

    • 一般来讲,最常见的, 开发者设定的值 = 指定值(层叠优先顺序、继承、初始值 )
  • 根据 下列规则 给每个属性 分配指定值(按照 优先级排序):
    • 指定值 和 层叠顺序: 可以来自 层叠样式表 css指定的 属性值.

      • 优先级高的值 = 指定值: 考虑有层叠顺序的情况,即开发者 明确了设置了 CSS 特性的值。

        • 层叠顺序 会影响 开发者设定的值,所以,应该根据层叠顺序 来确定声明的优先级别,优先级高的声明 才会起作用。
        • 例如,加了 !important 的声明 要优于 没有加的声明.
          • 带有 !importantheight 声明 = 指定值
          • div{ height : 100px; height : 130px !important;}
    • 继承值: 父元素的计算值: (根元素 没有父亲)
      • 如果 没有指定值,则考虑 父级元素继承而来的 继承值 作为指定值.

        • 否则,如果属性 是继承的, 且 元素不是 文档的根元素,使用它 父元素的计算值。

          • 例如, 子元素 em 没有指定颜色,会继承 父元素的颜色 绿色 来显示 元素的文本. em 元素 color'属性的指定值 在没有层叠影响的情况下,就是 “green”。

            • <p style="color:green;">The greet <em>is</em> good!</p>
    • 初始值(默认值): 如果都没有,那么将使用 默认值,也就是初始值;(初始值, 在每个属性的定义列表内 有说明。)
      • 比如,如果不设置 元素的 宽度 width,宽度的指定值 就是 auto
      • 不设置 字体大小 font-size,字体大小的指定值 = medium

⑵ 计算值

  • 计算值: = 相对值 转换成的绝对值.

    • 在层叠中,指定值 决定计算值,而指定值 可以是一个绝对值(例如颜色值“red”),也可以是 一个相对值(例如“em”和“ex”需要 根据像素 或者 绝对长度 来计算)。
    • 绝对值 = 计算值: 对于绝对值,不需要 经过计算 来得到计算值。
    • 相对值 转换为 计算值:
      • 而相对值 必须转换为 计算值:
      • 百分比值: 百分比 要乘以一个 参考值(每一个属性 都会定义 参考值是什么)
      • 相对长度单位 值:
        • 包含 相对长度单位的值(emexpx)必须乘以 相应的字体 或 点的尺寸 以得到绝对值

          • emex单位

            • 会被计算为 像素px 或者 绝对长度。
            • 浏览器默认 font-size16px
              • 所以 1em 的计算值 = ‘16px’。
      • 相对地址: URI 会被解析成 绝对地址
    • auto“:
      • auto”值 必须由各属性给出的公式 加以计算,某些关键字(smallerbolderinherit)根据它们的定义 而加以替换。
    • inherit 值, 继承值 = 计算值的 情况
      • 大部分 情形下,元素继承的是 计算值。

        • 不过有一些 属性的指定值 也可以被继承(比如, 行高 line-height属性的 数字属性值值(不带数字的纯数字))。
      • 子元素不继承 计算值的情况 在属性定义中 有描述。
    • 当指定值 不是“inherit”时,属性的计算值 根据属性定义列表中“计算值”一项 来确定。

⑶ 使用值

  • 使用值

    • 计算值 + 有依赖关系的值 = 使用值 = 最终转化成的 绝对的值。

      • 例如, 在处理计算值的过程中,文档没有被格式化, 此时,有些值 是无法确定的。

        • 百分比值: 比如,百分比宽度的元素,最终宽度 是与它包含块的宽度有关, 所以,值只有在 包含块确定下来 之后才能确定。
    • 查看 使用值

    • 可以直接使用浏览器开发者工具查看

      • 在 Firefox 中,使用值就是 “计算出的样式”。

      • 谷歌 Chrome 里则是 “Computed Style”。

⑷ 实际值

  • 实际值

    • 实际值 = 使用值 被应用后的 近似值。

      • 如,一个用户代理 可能只能渲染一个整数像素值的边框(实际值),并且该值 可能被 强制近似于 边框的计算宽度值。
      • 经过以上三个步骤的处理,使用值 基本上 成为渲染所需要的值。
      • 但是使用值 也许不能 在当前环境中 使用这个值。例如:
div{width: 3.1415926px;
}
  • 小数值: 在某些浏览器中,只能 显示整数类型的长度,因此,虽然上面的宽度在计算后的值 与设置的相同,但 浏览器却不能 按小数来显示。

    • Firefox ,会四舍五入
    • Chrome ,会直接取整

♣ 结束语 和 友情链接

  • 参考文章

    • 指定值、计算值 和 实际值
    • 指定值,计算值,使用值
    • 定义值、计算值、使用值、实际值分别指什么

  • 感谢:♥♥♥ 如果这篇文章 对您有帮助的话,可以点赞、评论、关注,鼓励下作者哦,感谢阅读 ~
  • 欢迎指正: 如果发现 有需要 更正的细节问题,欢迎指正,谢谢大家 ~╮( ̄▽ ̄)╭

【CSS 属性值分类: 指定值,计算值,使用值,实际值 的区别】相关推荐

  1. js数组查找最接近_js 2种方法从数组里面找到最接近某个数值的值(小于该指定值,并且大于其他值)...

    1.用于递归查找 var arr = [6,8,1,6,8,7,9,10,11,55,74,12,3,5,6,8,9,4,2,3,5,4,86,31,5] let testStr = 0 let te ...

  2. 删除df中值为指定值的行

    原始数据 假设有以下df: df = pd.DataFrame({'a': [1,2,3,np.nan,4,5], 'b': [4,5,np.nan,6,7,np.nan], 'c': [np.nan ...

  3. [译] Font-size:一个意外复杂的 CSS 属性

    原文地址:Font-size: An Unexpectedly Complex CSS Property 原文作者:Manish Goregaokar 译文出自:掘金翻译计划 本文永久链接:githu ...

  4. 7、CSS 属性选择器

    对带有指定属性的 HTML 元素设置样式. 可以为拥有指定属性的 HTML 元素设置样式,而不仅限于 class 和 id 属性. 注释:只有在规定了 !DOCTYPE 时,IE7 和 IE8 才支持 ...

  5. 前端学习 -- Css -- 属性选择器

    属性选择器:根据元素的属性选择指定元素 语法:[属性名] 选取含有指定属性的元素 [属性名="属性值"]:选取属性值等于指定值的元素 [属性名^="属性值"]: ...

  6. css属性选择器,[],=, ~=, ^=, ~=, $=, |=等符号含义

    全栈工程师开发手册 (作者:栾鹏) css系列教程1-选择器全解 css属性选择器 包括[]是否有某属性,=属性是否等于,~=属性包含,^=属性值以指定字符串开头,$=属性值以指定字符串结尾,*=属性 ...

  7. P14-前端基础-CSS属性选择器

    P14-前端基础-CSS属性选择器 1.属性选择器案例 <!DOCTYPE html> <html><head><meta charset="UTF ...

  8. junit集成Hamcrest测试集合中某个属性是否包含特定值

    junit已经集成Hamcrest但是还是需要引用hamcrest-library,不然只有基本方法,高级的没有 <dependency> <groupId>junit< ...

  9. css属性选择器诸如Class^=,Class*= ,Class$=释义

    代码如下: .show-grid [class^="col-"] {padding-top: 10px;padding-bottom: 10px;background-color: ...

最新文章

  1. Nginx笔记系列(1)——Nignx的安装部署
  2. java 中遍历目录下所有文件
  3. Altium Designer -- 差分布线和阻抗匹配
  4. 如何获取Debug Android Hash Key
  5. 从svn导入多个项目_GIT和SVN相比有哪些优势?如何在团队内部推行GIT?
  6. [Perforce系列—] 1. 使用Perforce 命令 与常用命令
  7. javascript学习之利用DOM和正则表达式判断主流浏览器的类型
  8. iPhone企业应用实例分析之四:技术要点分析(1)
  9. Xshell和Xftp免费版下载安装
  10. JMP软件在质量管理中的应用简述
  11. 毕业论文参考文献格式GB/T 7714的Endnote设置教程
  12. 6.5 发散思维能力
  13. hass智能 小米扫地机器人_Siri能控制小米扫地机器人吗_小米智能家居控制系统...
  14. 支气管炎如何治疗,试试这些食疗方,马上见效!
  15. anchor free和anchor based的区别
  16. 【云计算的1024种玩法】一.半小时轻松搭建属于自己的Discuz论坛
  17. go http客户端设置ResponseHeader参数后返回Timeouthttp: ContentLength=xxx with Body length 0错误
  18. android读取运动数据权限_Android 计步模块(读取三星S健康步数)
  19. jquery京东新版左侧下拉分类导航菜单代码
  20. xposed框架安全模式_为什么很多人的手机明明已经解锁root,完全可以装Xposed框架,却还要用“太极Magisk版”?...

热门文章

  1. 自主可控智能网联汽车操作系统
  2. 学会Python+爬虫,从此和996 Say goodbye~
  3. Ros下使用OpenCV对图像进行处理
  4. css 写箭头,拒绝图片
  5. 声音分贝的概念,dBSPL.dBm,dBu,dBV,dBFS
  6. 程序员都懂的30个段子,你知道几个?
  7. “全兴+万人品鉴”再度开启,与豫鲁冀苏四地消费者共醉“品牌之夜”
  8. Android 自定义动画(实现类似分享动画)
  9. 独家 | 使用Python了解分类决策树(附代码)
  10. 大白话告诉你,hadoop到底是个什么鬼