Flex4下的CSS規則

Flex4下的CSS規則

Flex4 中提供了兩套樣式,一個是經典的Halo ,另外就是新加的Spark 。新的Spark 組件比Halo 更容易自定義樣式,這對設計者來說是非常有益的,他們不必再爲實現一個樣式而寫大量的代碼了。下面來看一個實例,如有以下代碼的一個mxml 文件:

<?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/mx"

>


	<fx:Style
>

		@namespace s "library://ns.adobe.com/flex/spark";
		@namespace mx "library://ns.adobe.com/flex/mx";

		s|Button {
			color: #0000FF;
		}

		mx|Button {
			color: #FF0000;
		}

		.myStyle{
			font-style: italic;
		}
		#myId{
			font-size: 18;
		}
	</fx:Style
>


	<s:Panel
 title="JuLabs.me Flex4 CSS Demo"

 styleName="myStyle"

 width="100%"

 height="100%"

>


		<s:layout
>

			<s:VerticalLayout
 />

		</s:layout
>


		<s:Button
 label="藍色 spark 18號"

 id="myId"

 />


		<mx:Button
 label="紅色 halo 斜體"

 styleName="myStyle"

 />


	</s:Panel
>


</s:Application
>


在此例中CSS 代碼寫在fx:Style 標籤裏,CSS 代碼首先要申明命名空間,如下:


@namespace s
 "library://ns.adobe
.com
/flex/spark";
@namespace mx "library://ns.adobe
.com
/flex/mx";

上面的代碼把s 指向了Spark ,把mx 指向了Halo 。然後就可以寫相應的CSS 代碼了,但在每個樣式前面也要加上命名空間名稱,子選擇符也要加上。如:

 


s
|Button
 {
	color
: #0000FF

;

}

mx|Button
 {
	color
: #FF0000

;

}


上面的代碼一個定義了Spark 樣式的藍色Button ,第二個定義了Halo 樣式的紅色Button 。如果在項目中只使用一種樣式,那麼也可以將這個樣式定爲默認樣式。比如要將Spark 定爲默認樣式,可以用下面的語句:


@namespace "library://ns.adobe
.com
/flex/spark";

這樣,在寫CSS 樣式時就不用在每個選擇符前面加s| 了。

如果是自定義的組件,可以用下面的語句:


@namespace theme “me.julabs
.theme
.*”;
theme|Button
 {
	padding-left
: 20

;

}


上面的代碼把theme 指向自己定義的組件,這樣就可以用theme| 引用自定義的組件了。

也完全可以使用組件的styleNameid 屬性來設置它們的樣式,這樣也不需要在選擇符前面加s| 之類的命名空間名稱。如下:


.myStyle
{
	font-style
: italic
;

}

#myId
{
	font-size
: 18

;

}


這個例子裏的CSS 代碼都是直接寫在mxml 文件中的fx:Style 標籤裏的,這其實不符合大項目應用的。可以直接把CSS 代碼單獨保存爲一個文件,比如:style.css ,用fx:Stylesource 屬性來指向這個文件,這樣就可以實現結構和樣式分離的原則。如:

<fx:Style
 source="style.css"

 />

發佈了46 篇原創文章 · 獲贊 3 · 訪問量 16萬+
發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章