转载,请注明出处!
CSSParser对象解析CSS样式表时,解析出表示属性值的语法元素后,就会创建CSSParserValue对象。CSSParserValue对象记录了属性值。
属性值粗略的可以分为如下几种类型:1)关键字,例如:”visibility: hidden”等;2)字符串,例如“border:12px”等;3)整型数值,例如”z-index:5”;4)浮点数,例如”opacity:0.5”;5)函数类型,例如” background-image : url (/image/bg.gif)”。因此,CSSParserValue类必须包含可以存储上述5种类型值的成员变量。具体定义如下。
- 存储关键字的整型变量id。将解析出的字符串作为实参执行方法cssValueKeywordID。如果字符串是关键字,那么这个方法返回表示关键字的整型非零值。如果字符串不是关键字,那么这个方法返回零。将id作为实参执行方法valueOrPropertyName,可以获得关键字的字符串形式。
- 存储整型数值、字符串、浮点数、函数类型的union空间。大小为4个字节。
- 如果union空间存储的是整型数值,那么变量isInt为true。如果union空间存储的是非整型数值,那么isInt为false。
- 为了正确区分union空间存储值的实际类型,CSSParserValue定义了成员变量unit。
另外,需要注意这个类是一个struct,而非一个class。因此,CSS语法分析器直接使用这个类型的所有成员变量。