CSS值的来源
首先,我们知道CSS虽然语法简单,但也不是瞎写的,其属性和值都是官方定义好了的,确切的说是浏览器厂商定义好的。
这些给定的值无外乎来源以下情况:
inherit 表示从祖先元素继承得到值。每个属性都有。
initial 表示用户代理的默认值。每个属性都有。
浏览器专有的值,通常有-ms-,-webkit-等前缀,也有一些值并无前缀。
浏览器共有的值,虽然共有,但各浏览器在实现上不一定相同。
因此可以肯定css兼容问题多来源于浏览器厂商实现css渲染的不一致和进化程度不一造成。
CSS规范中的值
最终呈现给用户的值经过了4步: 首先指定的值 (the "specified value"), 然后是通过了继承的值 (the "computed value"), 然后转化为使用值 (the "used value"), 最后是因为浏览器本身限制原因而得到的实际值 (the "actual value").
即 指定值-->计算值-->使用值-->实际值
Specified value
指定值有3种可能,一是用户代理的默认值即initial,一是美工写在程序里的值,一是显示指定继承的值即inherit.
通常,inherit和initial都不必显示指定。但在某些情况下这2个值非常有用。
computed value
这是在还没形成文档前,渲染引擎解析css文件,通过层叠规则继承关系计算出来的值。
used value
这是css结合html形成文档后所得到的值。
理解计算值和使用值的区别就在于 浏览器是先分别解析HTML和CSS文件,然后再把它们融合起来。具体可参看这2张图。
webkit渲染流程
Geoko渲染流程
actual value
则是最后浏览器可用的值,比如说所有浏览器都不能处理小数点后7位,因此会被缩小精度。
这4个值源于规范,其他浏览器实现可能并不按此4步流程工作,但目前主流浏览器都是按此流程
注意 层叠不同于继承。层叠是对单个css属性而言,继承则是对元素而言。层叠常常伴随着权重问题。
Chrome开发者
指定值(3种)
用户代理默认值(不可更改)
具有中划线的值 表示被层叠规则覆盖,即被权重大的给覆盖了样式。
点击4可以跳转到相应的 节点和样式视图。4之下的部分表示从哪个元素继承了样式,通常从这里就可以看到元素的祖先DOM链.·
灰色部分可以更改,表示规则不可用且在运行时计算。
例子:
我现在指定h1的高度如下
查看computed value可以看到chrome保留小数点后4位:
查看使用值(在这个盒子中看的原因是有盒子代表形成了文档即对应前面的used value)
最后实际值在这(直接在页面上看):
可以看到如果有padding,padding会在形成文档之后在显示到浏览器上时加到视觉上的宽高里去。当然如果有box-sizing属性的指定则又不一样,但可以得知这是发生在最后一步的。
CSS值的来源
首先,我们知道CSS虽然语法简单,但也不是瞎写的,其属性和值都是官方定义好了的,确切的说是浏览器厂商定义好的。
这些给定的值无外乎来源以下情况:
inherit 表示从祖先元素继承得到值。每个属性都有。
initial 表示用户代理的默认值。每个属性都有。
浏览器专有的值,通常有-ms-,-webkit-等前缀,也有一些值并无前缀。
浏览器共有的值,虽然共有,但各浏览器在实现上不一定相同。
因此可以肯定css兼容问题多来源于浏览器厂商实现css渲染的不一致和进化程度不一造成。
CSS规范中的值
最终呈现给用户的值经过了4步: 首先指定的值 (the "specified value"), 然后是通过了继承的值 (the "computed value"), 然后转化为使用值 (the "used value"), 最后是因为浏览器本身限制原因而得到的实际值 (the "actual value").
即 指定值-->计算值-->使用值-->实际值
Specified value
指定值有3种可能,一是用户代理的默认值即initial,一是美工写在程序里的值,一是显示指定继承的值即inherit.
通常,inherit和initial都不必显示指定。但在某些情况下这2个值非常有用。
computed value
这是在还没形成文档前,渲染引擎解析css文件,通过层叠规则继承关系计算出来的值。
used value
这是css结合html形成文档后所得到的值。
理解计算值和使用值的区别就在于 浏览器是先分别解析HTML和CSS文件,然后再把它们融合起来。具体可参看这2张图。
webkit渲染流程
Geoko渲染流程
actual value
则是最后浏览器可用的值,比如说所有浏览器都不能处理小数点后7位,因此会被缩小精度。
这4个值源于规范,其他浏览器实现可能并不按此4步流程工作,但目前主流浏览器都是按此流程
注意 层叠不同于继承。层叠是对单个css属性而言,继承则是对元素而言。层叠常常伴随着权重问题。
Chrome开发者
指定值(3种)
用户代理默认值(不可更改)
具有中划线的值 表示被层叠规则覆盖,即被权重大的给覆盖了样式。
点击4可以跳转到相应的 节点和样式视图。4之下的部分表示从哪个元素继承了样式,通常从这里就可以看到元素的祖先DOM链.·
灰色部分可以更改,表示规则不可用且在运行时计算。
例子:
我现在指定h1的高度如下
查看computed value可以看到chrome保留小数点后4位:
查看使用值(在这个盒子中看的原因是有盒子代表形成了文档即对应前面的used value)
最后实际值在这(直接在页面上看):
可以看到如果有padding,padding会在形成文档之后在显示到浏览器上时加到视觉上的宽高里去。当然如果有box-sizing属性的指定则又不一样,但可以得知这是发生在最后一步的。
更多css值 相关文章请关注PHP中文网!

@keyframesispopularduetoitsversatoryand and powerincreatingsmoothcssanimations.keytricksinclude:1)definingsmoothtransitionsbetnestates,2)使用AnimatingmatematingmultationmatingMultationPropertiessimultane,3)使用使用4)使用BombingeNtibalibility,4)使用BombingingWithjavofofofofofoffo

CSSCOUNTERSAREDOMANAGEAUTOMANAMBERINGINWEBDESIGNS.1)他们可以使用forterablesofcontents,ListItems,and customnumbering.2)AdvancedsincludenestednumberingSystems.3)挑战挑战InclassINCludeBrowsEccerCerceribaliblesibility andperformiballibility andperformissises.4)创造性

使用滚动阴影,尤其是对于移动设备,是克里斯以前涵盖的一个微妙的UX。杰夫(Geoff)涵盖了一种使用动画限制属性的新方法。这是另一种方式。

文章讨论了CSS FlexBox,这是一种布局方法,用于有效地对齐和分布响应设计中的空间。它说明了FlexBox用法,将其与CSS网格进行了比较,并详细浏览了浏览器支持。

本文讨论了使用CSS创建响应网站的技术,包括视口元标签,灵活的网格,流体媒体,媒体查询和相对单元。它还涵盖了使用CSS网格和Flexbox一起使用,并推荐CSS框架


热AI工具

Undresser.AI Undress
人工智能驱动的应用程序,用于创建逼真的裸体照片

AI Clothes Remover
用于从照片中去除衣服的在线人工智能工具。

Undress AI Tool
免费脱衣服图片

Clothoff.io
AI脱衣机

Video Face Swap
使用我们完全免费的人工智能换脸工具轻松在任何视频中换脸!

热门文章

热工具

MinGW - 适用于 Windows 的极简 GNU
这个项目正在迁移到osdn.net/projects/mingw的过程中,你可以继续在那里关注我们。MinGW:GNU编译器集合(GCC)的本地Windows移植版本,可自由分发的导入库和用于构建本地Windows应用程序的头文件;包括对MSVC运行时的扩展,以支持C99功能。MinGW的所有软件都可以在64位Windows平台上运行。

禅工作室 13.0.1
功能强大的PHP集成开发环境

安全考试浏览器
Safe Exam Browser是一个安全的浏览器环境,用于安全地进行在线考试。该软件将任何计算机变成一个安全的工作站。它控制对任何实用工具的访问,并防止学生使用未经授权的资源。

记事本++7.3.1
好用且免费的代码编辑器

VSCode Windows 64位 下载
微软推出的免费、功能强大的一款IDE编辑器