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

Flex中的CSS: (6) CSS匹配分析

发布时间:2020-12-15 04:57:41 所属栏目:百科 来源:网络整理
导读:Flex的各种资料中对CSS没有深入地介绍。 Flex是开发Web应用展示层的利器。所谓“展示”就是可以看到的部分,作为控制外观(看到的部分)的CSS,其实大有学问。 CSS涉水太深,很难用通俗易懂的语言完整地说明CSS的方方面面。 ? 当FlashPlayer显示列表中的某个

Flex的各种资料中对CSS没有深入地介绍。

Flex是开发Web应用展示层的利器。所谓“展示”就是可以看到的部分,作为控制外观(看到的部分)的CSS,其实大有学问。

CSS涉水太深,很难用通俗易懂的语言完整地说明CSS的方方面面。

?

当FlashPlayer显示列表中的某个显示元素寻找属于自己的样式的时候,它会按照如下顺序进行寻找:

1。自己的内联属性中是否直接设置了样式,如果是就采用之。

???? 如: <s:Button x="55" y="191" label="Button" color="red"/>

?

2。如果没有设置内联属性,则看CSS中有没有匹配的ID选择器,如果有则采用之。

???? 如: <s:Button x="55" y="191" label="Button" id="myButton"/>

??????????? CSS定义:???

????????????????????????????? #myButton{
??????????????????????????????????????? ?fontStyle:italic;
?????????????????????????????? }

?

3。如果没有ID选择器,则看CSS中有没有匹配的类选择器,如果有则采用之。

???? 如: <s:Button x="55" y="191" label="Button" styleName="myButton"/>

??????????? CSS定义:???

????????????????????????????? .myButton{
??????????????????????????????????????? ?fontStyle:italic;
?????????????????????????????? }

?

4。如果没有类选择器,则看CSS中有没有匹配的类型选择器,如果有则采用之。

???? 如: <s:Button x="55" y="191" label="Button" />

??????????? CSS定义:???

????????????????????????????? Button{
??????????????????????????????????????? ?fontStyle:italic;
?????????????????????????????? }

?

5。如果没有类型选择器,则看需要匹配的该样式是否是可继承的,如果是,则查找其父类中是否有该样式的指定,如果有则采用之。如果没有,则继续在父类的父类中找寻,直到找到为止。如果最终没有找到,则采用全局样式(或默认样式)。

???? 如: <s:Button x="55" y="191" label="Button" />

??????????? CSS定义:???

????????????????????????????? *{
??????????????????????????????????????? ?fontStyle:italic;
?????????????????????????????? }

?


=================================================================

以上的内容为了叙述基本的思路,对CSS的复杂性作了相当的简化。

比如下面的多个CSS样式可能都作用于同一个显示元素上( <s:Button?id="myButton" styleName=".buttonStyle" label="Button" />)。

S|Group #myButton?????????????????????? ------为某个Group中的ID为myButton的显示元素设置样式

S|VGroup S|Group #myButton?????------为某个VGroup中的Group中的ID为myButton的显示元素设置样式

.buttonStyle????????????????????????????????????? ------为指定styleName=".buttonStyle"的显示元素设置样式

Button?????????????????????????????????????????????? ------为全部按钮设置样式???

*???????????????????????????????????????????????????????? ------为所有显示元素设置样式???????????????????

?

CSS提供了灵活的定义的同时,带来了解析的复杂性

CSS的优先级定义以及为了解决优先级的问题,提出的“特性值(specificity)”方法。。。。。

?

如果用浏览器解析CSS做类比,则说明Flex中的CSS原理,无异于说明浏览器内核解析CSS的原理(虽然Flex和浏览器不同。事实上说明Flex中的CSS要稍微容易一些)

?

限制CSS定义的时候形式上的多样性,会降低解析的复杂性,我认为常规的定义形式足以满足绝大多数的功能要求。

(编辑:李大同)

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

    推荐文章
      热点阅读