Flex中的样式(CSS)
转载自:http://www.cnblogs.com/bffc/archive/2013/03/29/2989117.html 改变Flex应用程序的两种方式:样式和皮肤 简单说一下这两个的区别:通过样式可以设置可见元素的字体大小及背景颜色,也可以改变Flex组件的外观。皮肤的概念比样式更宽泛,通过换肤可以一下子改变所有可见元素的外观,甚至重新排布元素在屏幕上的位置。 在Flex4之前的版本中定制外观主要方式是样式,而Flex中可以通过皮肤和样式共同设计有意思的用户界面。因此在MX组件中拥有很多内置样式,在Spark组件中拥有的样式要少的多,但Spark组件拥有一些基本造型能力,如果想要更彻底的改变?Spark组件的展示效果,可以通过为该组件实现一个皮肤,在Spark组件中CSS主要被用在三个方面:为一个应用程序定义一些整体属性,为组件装配皮肤以及能够运用高级CSS选择器。 Flex中CSS有四种使用方式 一、使用本地样式定义 使用<fx:Style>标签在MXML文件中创建本地的样式定义。 <fx:Style> .lableColor{//类选择样式 color:#333333; } S|Button{//组件定义样式 color:#333333; chromeColor:#AF5E5E; } </> <!--应用到组件--> s:Label styleName="lableColor"/> 文档中的Button自动应用样式表中的样式s:Button/> 二、使用外部样式表 FLEX支持外部CSS样式表。要应用一个样式表到当前文档和子文档,使用<fx:Style>标签中的source属性。 s:Application> fx:Style source="defaults.css"/> defaults.css文件中的样式表定义与本地样式定义相同--> /> 文档中的button自动应用样式表中的样式/> > 三、通过标签属性设置行内样式 设置Button组件颜色chromeColor为#AF5E5E,字体颜色color为#333333,--> 字体fontFamily为Arial(宋体),字体大小fontSize为15s:Button x="10" y="85" chromeColor="#AF5E5E" color="#333333" fontFamily="Arial" fontSize="15"/> 四、使用setStyle()方法 > fx:Script<![CDATA[ private function initButton():void{ myButton.setStyle("paddingTop",12); myButton.setStyle("paddingBottom",12); } ]]> 组件初始化时调用设定样式的脚本方法id="myButton" initialize=" initButton();"/> > ?CSS为Flex应用程序添加样式的途径
? 在标准的CSS中属性一般都使用小写字母,不同单词之间使用连字符分割,如:background-color:#FFFFF;,但在Flex中我们是使用驼峰大小写形式的定义的CSS属性,如:backgroundColor:#FFFFF;。之所以有这样的差别是因为连字符在XML不是有效的字符,而MXML标签都遵循XML标签的约定。但对于<fx:Style>标签中指定样式的时候,使用这两种语法,Flex都可以正确理解。 > /* 这两个都是正确的 */ .lableColor{ background-color:#FFFFF; } .lableColor{ backgroundColor:#FFFFF; } > ? CSS选择器可以包括,类选择器、类型选择器(也叫元素选择器、标签选择器)、后代选择器(也叫派生选择器)、ID选择器、伪(状态)选择器、全局选择器、交集选择器、并集选择器等,这些样式应用都已经在flex得到支持。 1.类选择器 > @namespace s "library://ns.adobe.com/flex/spark"; @namespace mx "library://ns.adobe.com/flex/mx"; .col{ color: #FF0000; } label="button" styleName="col"s:Label text="label"/> 2.类型选择器(也叫元素选择器、标签选择器) 类型选择器是根据MXML文件中组件的类型来设置的,通过类型选择器可以把一组样式应用到某种类型的组件的所有实例上 > @namespace s "library://ns.adobe.com/flex/spark"; @namespace mx "library://ns.adobe.com/flex/mx"; s|TextInput{ color: #FF0000; } s|Button{ color: #FFFF00; } TextInput和Button组件的颜色会随之改变s:TextInput ="text input"="button"/> 3.后代选择器(也叫派生选择器) > @namespace s "library://ns.adobe.com/flex/spark"; @namespace mx "library://ns.adobe.com/flex/mx"; s|VGroup s|Button{ color: #FF0000; } s:VGroup verticalAlign="middle"> ="Text Input 1"/> ="button1"s:VGroup="button2"button1字体颜色会变成红色,button2字体颜色不会改变--> 4.ID选择器 > @namespace s "library://ns.adobe.com/flex/spark"; @namespace mx "library://ns.adobe.com/flex/mx"; #btn{ color: #FF0000; } ="btn" label/> 5.伪(状态)选择器 > @namespace s "library://ns.adobe.com/flex/spark"; @namespace mx "library://ns.adobe.com/flex/mx"; s|Button:up{ color: #FF0000; } .col:over{ color: #0000FF; } #btn:down{ color: #FF00FF; } s|VGroup s|Button:disabled{ color: #FF0000; } > 6.全局选择器 > @namespace s "library://ns.adobe.com/flex/spark"; @namespace mx "library://ns.adobe.com/flex/mx"; global{ color: #FF0000; } ="label"/> 7.交集选择器 8.并集选择器 加载外部字体 > @font-face { fontFamily: UbuntuTitling-Bold; src: url("assets/fonts/UbuntuTitling-Bold.ttf"); embedAsCFF: true; } > (编辑:李大同) 【声明】本站内容均来自网络,其相关言论仅代表作者个人观点,不代表本站立场。若无意侵犯到您的权利,请及时与联系站长删除相关内容! |