- <?xml version="1.0" encoding="utf-8"?>
- <s:Application xmlns:fx="http://ns.adobe.com/mxml/2009" xmlns:s="library://ns.adobe.com/flex/spark" xmlns:mx="library://ns.adobe.com/flex/halo" minWidth="1024" minHeight="768">
- <fx:Style source="global.css" />
- <s:layout>
- <s:VerticalLayout />
- </s:layout>
- <mx:Button label="Click me, I'm a Halo button !" id="haloButton" />
- <s:Button label="Click me, I'm a spark cool and funky button !" id="sparkButton" />
- <s:VGroup id="myBox">
- <mx:ProgressBar />
- </s:VGroup>
- </s:Application>
申明命名空间
- @namespace s "library://ns.adobe.com/flex/spark";
- @namespace mx "library://ns.adobe.com/flex/halo";
像这样,如果我想应用某些style到一个部件上,我还要必须在我的选择符前边确定命名空间(就象这样 ,s|Button { styles... })。如果你能保证你的项目大部分都会使用Spark组件,你也可以将Spark命名空间设为默认。
- @namespace "library://ns.adobe.com/flex/spark";
之后,在前边的例子里,你就不需要再附加上's|'了。
全局选择
- mx|Button
- {
- color:#ffffff;
- }
- s|Button
- {
- color:#000000;
- }
当然,你依然可以以设置组件的stylename属性的方式来使用类选择符,就像这样
- .myStyleClass {
- color:#ff0000;
- }
选择我的ID
若我只是想设置某些组件的base-color,我会用到ID选择符
- #haloButton
- {
- base-color:#0000ff;
- }
- #sparkButton
- {
- base-color:#ffffff;
- }
继承选择
我想要包含在VGroup里的progressbar字体设置为红色
- s|VGroup#myBox mx|ProgressBar
- {
- color:#ff0000;
- }
状态选择
我想我的spark按钮的标签在被用户按下的时候(button的state为'down')字体变为绿色
- s|VGroup#myBox mx|ProgressBar
- {
- color:#ff0000;
- }
总结
以前的CSS功能实现有许多不合理的地方,而且如果你在使用Flex之前开发过HTML/CSS会让你相当沮丧。
现在有了新的语法,定制组件将变得容易许多。