博客
关于我
强烈建议你试试无所不能的chatGPT,快点击我
Flex中的样式(CSS)
阅读量:7137 次
发布时间:2019-06-28

本文共 4342 字,大约阅读时间需要 14 分钟。

改变Flex应用程序的两种方式:样式和皮肤

  简单说一下这两个的区别:通过样式可以设置可见元素的字体大小及背景颜色,也可以改变Flex组件的外观。皮肤的概念比样式更宽泛,通过换肤可以一下子改变所有可见元素的外观,甚至重新排布元素在屏幕上的位置。

  在Flex4之前的版本中定制外观主要方式是样式,而Flex中可以通过皮肤和样式共同设计有意思的用户界面。因此在MX组件中拥有很多内置样式,在Spark组件中拥有的样式要少的多,但Spark组件拥有一些基本造型能力,如果想要更彻底的改变 Spark组件的展示效果,可以通过为该组件实现一个皮肤,在Spark组件中CSS主要被用在三个方面:为一个应用程序定义一些整体属性,为组件装配皮肤以及能够运用高级CSS选择器。

Flex中CSS有四种使用方式

  一、使用本地样式定义

  使用<fx:Style>标签在MXML文件中创建本地的样式定义。

.lableColor{//类选择样式 color:#333333; } S|Button{//组件定义样式 color:#333333; chromeColor:#AF5E5E; }

  二、使用外部样式表

  FLEX支持外部CSS样式表。要应用一个样式表到当前文档和子文档,使用<fx:Style>标签中的source属性。

  三、通过标签属性设置行内样式

  可以像设定组件的属性一样在MXML标签中设定样式属性。行内样式的优先级高于本地样式和外部样式

  四、使用setStyle()方法

  可以在ActionScript中使用方法来操作组件的样式属性。使用setStyle()方法的优先级是最高的。虽然setStyle()方法对于运行时修改样式很有用,但应该尽量少用。因为setStyle()会导致应用程序中很多可见的地方不断刷新,属于CPU占用率较高的操作。

 

 CSS为Flex应用程序添加样式的途径

  • 为个别组件设置个别样式
  • 使用CSS类选择器为多个组件设置一组样式
  • 使用类型选择器指定某种类型(例如Button)的所有实例都采用同一组样式
  • 使用后代选择器指定符合某种层次关系(如位于VGroup中的所有Button实例)的组件采用同一组样式。
  • 使用ID选择器指定具有特定id的某一个组件采用一组样式
  • 使用伪选择器,为组件的某种特定状态(例如按钮的抬起状态)应用样式

   在标准的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.类选择器

      类选择器是通过一个样式类定义一组样式,以一个点开头,后面加上组件中通过styleName设置的样式名来表示,可以应用到一个或者多个组件上

@namespace s "library://ns.adobe.com/flex/spark"; @namespace mx "library://ns.adobe.com/flex/mx"; .col{ color: #FF0000; }

  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; }

  3.后代选择器(也叫派生选择器)

      后代选择器也叫派生选择器,可以使用后代选择器给一个元素(如容器、页面、组件)里的子元素定义样式,既指定符合某种层次关系(如位于VGroup中的所有Button实例)的组件采用同一组样式,是一种添加具体性的手段,可以为应用的样式指定包含层次

@namespace s "library://ns.adobe.com/flex/spark"; @namespace mx "library://ns.adobe.com/flex/mx"; s|VGroup s|Button{ color: #FF0000; }

  4.ID选择器

      ID选择器是只想为一个组件添加样式时使用的一种手段,ID选择器以#开头,后面加上组件中设置的ID名来表示的类别选择器

@namespace s "library://ns.adobe.com/flex/spark"; @namespace mx "library://ns.adobe.com/flex/mx"; #btn{ color: #FF0000; }

  5.伪(状态)选择器

      伪(状态)选择器为组件的不同状态(如:按钮的抬起、悬停、按下、禁用等等)设置样式,使用前面的四种选择器和伪选择器就可以为任何Flex组件的状态设置样式了

@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.全局选择器

      全局选择器global可以将样式应用到所有的组件

@namespace s "library://ns.adobe.com/flex/spark"; @namespace mx "library://ns.adobe.com/flex/mx"; global{ color: #FF0000; }

  7.交集选择器

      交集选择器由两个选择器直接连接构成,其结果是选中二者各自元素范围的交集

  8.并集选择器

      并集选择器是多个选择器通过逗号连接而成的,并集选择器同时选中各个基本选择器所选择的范围,任何形式的选择器都可以

加载外部字体

@font-face { fontFamily: UbuntuTitling-Bold; src: url("assets/fonts/UbuntuTitling-Bold.ttf"); embedAsCFF: true; }

 

 

转载于:https://www.cnblogs.com/bffc/archive/2013/03/29/2989117.html

你可能感兴趣的文章
诡异的DataTime.Now.ToString()
查看>>
hdu 4901
查看>>
jdk环境变量配置
查看>>
关于添加图片到svg中,rails下使用js, 用parseFloat来调整force.on时的位置
查看>>
5个用于移动开发的最流行数据库
查看>>
网页动态添加的内容,没有触发事件
查看>>
SQL Server 内存压力解决方案
查看>>
SVD神秘值分解
查看>>
项目中遇到的IE8浏览器访问页面过慢问题
查看>>
window.location.href的使用方法
查看>>
j2ee指导型框架或示例
查看>>
CSerialIO--串口控件
查看>>
[詹兴致矩阵论习题参考解答]习题2.1
查看>>
#import与@class的区别
查看>>
栈的存储结构和常见操作(c 语言实现)
查看>>
WSImport
查看>>
【视频教学】如何利用高德地图IOS SDK进行开发?
查看>>
责任链设计模式(过滤器、拦截器)
查看>>
图像处理和计算机视觉中的经典论文
查看>>
第50周一
查看>>