WebKit源码解析之WebCore::Length
来源:互联网 发布:淘宝装修的图片哪里找 编辑:程序博客网 时间:2024/04/28 13:17
转载,请注明出处!
这是一个struct结构体,用来表示长度类型。在分析这个类之前,有必要叙述一下长度的相关概念。
一般来说,长度的样式就是”digit unitType”。CSS规范中将长度分为了多种类型:1)auto类型、2)相对类型、3)绝对类型、4)百分数、5)内置类型最大数值、6)内置类型最小数值、7)Undefined类型。
相对类型是指em和ex两个单位。如果长度形如”xx em”或”xx ex”,那么此时长度就是相对类型长度。ex就是字符”x”的高度。如果是1ex,那么长度值等于1 * height(‘x’)。如果是2ex,那么长度等于2 * height(‘x’)。em就是字体的大小。如果是1em,那么长度就是1 * font-size。如果是2em,那么长度等于2 * font-size。注:如果ex用于font-size属性,那么ex是指父节点的字体大小。
绝对类型是指如下6种类型:1)in, 表示英寸,等于2.54厘米;2)cm, 表示厘米;3)mm, 表示毫米;4)pt, 表示点,等于1/72英寸;5)pc, 等于12pt;6)px,表示像素,等于0.75pt。
百分数形如”xx%”。一般情况下百分数会对应着一个基准值。
此结构体具有的属性有四个:1)union空间,既可以存储整型数值,也可以存储浮点型数值;2)布尔类型变量m_quirk,如果此变量为true,说明按照“怪异模式”布局;3)表示长度类型的成员变量m_type;4)布尔类型m_isFloat,如果union空间存储的是浮点型数值,那么此成员变量为true。
本结构体具有如下几种类型的方法。
- 构造函数。本类型具有多个构造函数,具有默认构造函数,可以只传递长度类型创建Length对象,可以传递数值以及长度类型创建Length对象,还可以传递数值、长度类型、怪异模式标志创建Length对象。
- 重载操作符。重载了3个操作符,具体为:相等操作符、不等操作符、乘赋值操作符。
- 查询函数。可以查询union空间存储的数值、可以查询Length对象的类型、也可以查询布局方式是否为“怪异模式”。
- 修改Length对象。可以重新修改Length对象的布局方式,也可以修改Length对象union空间存储的数值。
- 根据指定的基准值,解析百分数、auto两种类型的Length对象。
- WebKit源码解析之WebCore::Length
- WebKit源码解析 -- WebCore:: CSSParserValue
- WebKit源码解析 -- WebCore::CSSValue
- WebKit之WebCore篇
- WebKit之WebCore
- 浅谈WebKit之WebCore
- WebKit之WebCore篇
- 浅谈WebKit之WebCore篇
- 浅谈WebKit之WebCore篇
- 浅谈WebKit之WebCore篇
- 浅谈WebKit之WebCore篇
- 浅谈WebKit之WebCore篇
- 浅谈WebKit之WebCore篇
- WebKit之jsc和webcore的交互
- [WebKit] JavaScriptCore解析--基础篇 (一)JSC与WebCore
- [WebKit] JavaScriptCore解析--基础篇 (一)JSC与WebCore
- WebKit源码解析之network移植接口
- [WebKit]WebCore之页面加载的设计与实现(一)
- oracle group by 深入理解
- 持续集成工具是怎样炼成的?持续集成工具实战
- 经典c/c++面试试题
- 孔群
- Ruby on Rails,创建模型,附赠模型与表名不一致时的解决方法
- WebKit源码解析之WebCore::Length
- 微软等数据结构与算法面试100题 第二十题
- GNU ARM 汇编程序设计(总结)
- spinner 中如何添加图片
- 10位IT领袖给应届毕业生的10条忠告
- vb滑轮安装出错——错误代码0x80004005
- 数据结构笔记五-2 (20120901)
- 类型转换---struts2学习笔记
- 用QFileSystemModel设计文件浏览器