<?xml version="1.0" encoding="UTF-8"?>
<rss version="2.0"
	xmlns:content="http://purl.org/rss/1.0/modules/content/"
	xmlns:wfw="http://wellformedweb.org/CommentAPI/"
	xmlns:dc="http://purl.org/dc/elements/1.1/"
	xmlns:atom="http://www.w3.org/2005/Atom"
	xmlns:sy="http://purl.org/rss/1.0/modules/syndication/"
	xmlns:slash="http://purl.org/rss/1.0/modules/slash/"
	>

<channel>
	<title>我的普立茲</title>
	<atom:link href="http://blog.beyes.tw/feed" rel="self" type="application/rss+xml" />
	<link>http://blog.beyes.tw</link>
	<description>The Time Of My Life …</description>
	<lastBuildDate>Sun, 01 Aug 2010 09:21:48 +0000</lastBuildDate>
	<generator>http://wordpress.org/?v=2.9.2</generator>
	<language>en</language>
	<sy:updatePeriod>hourly</sy:updatePeriod>
	<sy:updateFrequency>1</sy:updateFrequency>
			<item>
		<title>CSS3 擬元素(Pseudo-elements) &#124; Selector</title>
		<link>http://blog.beyes.tw/220</link>
		<comments>http://blog.beyes.tw/220#comments</comments>
		<pubDate>Fri, 02 Jul 2010 07:50:55 +0000</pubDate>
		<dc:creator>skyfate</dc:creator>
				<category><![CDATA[CSS3]]></category>
		<category><![CDATA[CSS]]></category>

		<guid isPermaLink="false">http://blog.beyes.tw/?p=220</guid>
		<description><![CDATA[其表達方式不同於 CSS2.1，它需要用兩個冒號(colon) :: 來表示。
::擬元素的名稱
::first-line
適用於區塊層級(Block-Level)元素的第一列。

p::first-letter {				/* 例如我們做這樣的設定時 */
	color: blue;
}


::first-letter
適用於區塊層級(Block-Level)元素的第一個字。

p::first-letter {				/* 例如我們做這樣的設定時 */
	float: left;
	color: blue;
	font-size: 50px;
	font-weight: bold;
}


::selection
表示經由瀏覽者強調之後的部分文件內容。例如我們在網頁上選取一些文字時(反白)，通常其表現出來的就是藍底白字。

p::selection {					/* 例如我們做這樣的設定時 */
	background-color: yellow;
	color: red;
}


::after
用來和 content 樣式一起使用，設定在目標內容產生之後。

p::after {					/* 例如我們做這樣的設定時 */
	content: &#34;我在後面!&#34;;
	color: red;
}


::before
用來和 content 樣式一起使用，設定在目標內容產生之前。

p::before {					/* 例如我們做這樣的設定時 */
	content: &#34;我在前面!&#34;;
	color: red;
}


]]></description>
			<content:encoded><![CDATA[<p>其表達方式不同於 CSS2.1，它需要用兩個冒號(colon) <b class="red">::</b> 來表示。</p>
<p><code class="code-one">::擬元素的名稱</code></p>
<h2>::first-line</h2>
<p>適用於區塊層級(Block-Level)元素的第一列。</p>
<pre class="code-example">
p::first-letter {				<span class="code-two">/* 例如我們做這樣的設定時 */</span>
	color: blue;
}
</pre>
<p><img src="http://i19.photobucket.com/albums/b152/skyfate/cblog/id005-1.png" alt="" /></p>
<h2>::first-letter</h2>
<p>適用於區塊層級(Block-Level)元素的第一個字。</p>
<pre class="code-example">
p::first-letter {				<span class="code-two">/* 例如我們做這樣的設定時 */</span>
	float: left;
	color: blue;
	font-size: 50px;
	font-weight: bold;
}
</pre>
<p><img src="http://i19.photobucket.com/albums/b152/skyfate/cblog/id005-2.png" alt="" /></p>
<h2>::selection</h2>
<p>表示經由瀏覽者強調之後的部分文件內容。例如我們在網頁上選取一些文字時(反白)，通常其表現出來的就是藍底白字。</p>
<pre class="code-example">
p::selection {					<span class="code-two">/* 例如我們做這樣的設定時 */</span>
	background-color: yellow;
	color: red;
}
</pre>
<p><img src="http://i19.photobucket.com/albums/b152/skyfate/cblog/id005-3.png" alt="" /></p>
<h2>::after</h2>
<p>用來和 content 樣式一起使用，設定在目標內容產生之後。</p>
<pre class="code-example">
p::after {					<span class="code-two">/* 例如我們做這樣的設定時 */</span>
	content: &quot;我在後面!&quot;;
	color: red;
}
</pre>
<p><img src="http://i19.photobucket.com/albums/b152/skyfate/cblog/id005-4.png" alt="" /></p>
<h2>::before</h2>
<p>用來和 content 樣式一起使用，設定在目標內容產生之前。</p>
<pre class="code-example">
p::before {					<span class="code-two">/* 例如我們做這樣的設定時 */</span>
	content: &quot;我在前面!&quot;;
	color: red;
}
</pre>
<p><img src="http://i19.photobucket.com/albums/b152/skyfate/cblog/id005-5.png" alt="" /></p>
]]></content:encoded>
			<wfw:commentRss>http://blog.beyes.tw/220/feed</wfw:commentRss>
		<slash:comments>1</slash:comments>
		</item>
		<item>
		<title>CSS3 擬類型(Pseudo-classes) &#124; Selector</title>
		<link>http://blog.beyes.tw/219</link>
		<comments>http://blog.beyes.tw/219#comments</comments>
		<pubDate>Fri, 02 Jul 2010 07:45:55 +0000</pubDate>
		<dc:creator>skyfate</dc:creator>
				<category><![CDATA[CSS3]]></category>
		<category><![CDATA[CSS]]></category>

		<guid isPermaLink="false">http://blog.beyes.tw/?p=219</guid>
		<description><![CDATA[擬類型的概念是為了允許我們選擇位於 HTML 文件結構之外或者是不能使用其它簡單選取器來表達的資訊。擬類型選取器它是使用冒號 &#34;:&#34; 然後再接續擬類型的名稱來表示。
:擬類型的名稱
動態擬類型(Dynamic pseudo-classes)
鏈結(Link)的擬類型 &#8211; :link 與 :visited
:link 適用於顯示尚未點選過的超鏈結外觀。
:visited 適用於顯示已經點選過或瀏覽過內容的超鏈結外觀。

a:link {color: #000099;}			/* 設定尚未點選時 */
a:visited {color: #000099;}			/* 設定已點選過時 */

瀏覽者行為的擬類型 &#8211; :hover, :active, 與 :focus
:hover 適用於可盤旋(hover)之元素，或者說是滑鼠游標在目標元素上並且未有動作時。
:active 適用於處於啟動中(active)之元素，或者說是滑鼠游標在目標元素上有動作時。

a:link {color: #000099;}			/* 設定尚未點選時 */
a:visited {color: #000099;}			/* 設定已點選過時 */
a:hover {color: #990000;}			/* 設定在目標上時 */
a:active {color: #009900;}			/* 設定正在點選時 */

/* :link, :visited, :hover, :active 這四個同時在設定的時後, 要注意其順序. */

:focus 適用於處於輸入焦點中(focus)之元素，例如鍵盤輸入、滑鼠事件或表單輸入時。

&#60;input type=&#34;text&#34; name=&#34;user&#34; value=&#34;ID&#34; /&#62;

input:focus [...]]]></description>
			<content:encoded><![CDATA[<p>擬類型的概念是為了允許我們選擇位於 HTML 文件結構之外或者是不能使用其它簡單選取器來表達的資訊。擬類型選取器它是使用冒號 &quot;:&quot; 然後再接續擬類型的名稱來表示。</p>
<p><code class="code-one"><b>:</b>擬類型的名稱</code></p>
<h2>動態擬類型(Dynamic pseudo-classes)</h2>
<h3>鏈結(Link)的擬類型 &#8211; :link 與 :visited</h3>
<p><b>:link</b> 適用於顯示尚未點選過的超鏈結外觀。</p>
<p><b>:visited</b> 適用於顯示已經點選過或瀏覽過內容的超鏈結外觀。</p>
<pre class="code-example">
a:link {color: #000099;}			<span class="code-two">/* 設定尚未點選時 */</span>
a:visited {color: #000099;}			<span class="code-two">/* 設定已點選過時 */</span>
</pre>
<h3>瀏覽者行為的擬類型 &#8211; :hover, :active, 與 :focus</h3>
<p><b>:hover</b> 適用於可盤旋(hover)之元素，或者說是滑鼠游標在目標元素上並且未有動作時。</p>
<p><b>:active</b> 適用於處於<u>啟動中(active)</u>之元素，或者說是滑鼠游標在目標元素上有動作時。</p>
<pre class="code-example">
a:link {color: #000099;}			<span class="code-two">/* 設定尚未點選時 */</span>
a:visited {color: #000099;}			<span class="code-two">/* 設定已點選過時 */</span>
a:hover {color: #990000;}			<span class="code-two">/* 設定在目標上時 */</span>
a:active {color: #009900;}			<span class="code-two">/* 設定正在點選時 */</span>

<span class="code-two">/* <span class="red">:link, :visited, :hover, :active 這四個同時在設定的時後, 要注意其順序.</span> */</span>
</pre>
<p><b>:focus</b> 適用於處於輸入焦點中(focus)之元素，例如鍵盤輸入、滑鼠事件或表單輸入時。
<pre class="code-example">
&lt;input type=&quot;text&quot; name=&quot;user&quot; value=&quot;ID&quot; /&gt;

input:focus {background-color: red;}		<span class="code-two">/* 設定點選輸入框時 */</span>
</pre>
<h2>目標擬類型(The target pseudo-class)</h2>
<h3>:target</h3>
<p>適用於 URIs 結尾有使用到 A 錨識別符號(#)，或稱分段識別器(Fragment Identifier)。</p>
<pre class="code-example">
h1:target {color: red;}				<span class="code-two">/* 例如我們做這樣的設定時 */</span>

<span class="code-two">&lt;!-- 點擊鏈結並跳到目標點時, h1 的顏色會變成紅色 --&gt;</span>
&lt;a href=&quot;#myLoc&quot;&gt;Go to title.&lt;/a&gt;		<span class="code-two">&lt;!-- 設定一個 A 錨 --&gt;</span>
&lt;h1 id=&quot;myLoc&quot;&gt;標題&lt;/h1&gt;				<span class="code-two">&lt;!-- 我們所設定的目標地點 --&gt;</span>
</pre>
<h2>語系擬類型(The language pseudo-class)</h2>
<h3>:lang()</h3>
<p>適用於依據瀏覽者的語系來設定。</p>
<pre class="code-example">
p:lang(en-us) {color: #0000ff;}		<span class="code-two">/* 瀏覽者使用 en-us 語系時 */</span>
p:lang(zh-tw) {color: #00ff00;}		<span class="code-two">/* 瀏覽者使用 zh-tw 語系時 */</span>

p.myLang:lang(zh-tw) {color: blue;}	<span class="code-two">/* 例子(續) */</span>
&lt;p class=&quot;myLang&quot;&gt;測試&lt;/p&gt;		<span class="code-two">&lt;!-- 我使用 zh-tw 所以是藍色 --&gt;</span>

p.myLang:lang(en-us) {color: blue;}	<span class="code-two">/* 例子(再續) */</span>
&lt;p class=&quot;myLang&quot;&gt;測試&lt;/p&gt;		<span class="code-two">&lt;!-- 我沒用 en-us 所以它繼承親代顏色 --&gt;</span>
</pre>
<h2>UI 元素標籤的狀態擬類型(The UI element states pseudo-classes)</h2>
<h3>:enabled, :disabled</h3>
<p>:enabled 擬類型適用於代表使用者介面上的元素是在啟用中的狀態，這些元素有著相對映的停用狀態。反過來說，:disabled 擬類型適用於代表使用者介面上的元素是在停用中的狀態，這些元素有著相對映的啟用狀態。</p>
<p>什麼是構成啟用狀態、停用狀態或使用者介面元素，這些都完全依賴於文件語言(如 HTML)。然而，在典型的文件上，大部分的元素既不是 :enabled 也不是 :disabled 狀態。(這類的擬類型主要還是針對於 HTML 的表單類標籤。)</p>
<pre class="code-example">
button:enabled {border: 5px solid blue;}
button:disabled  {border: 5px solid red;}

<span class="code-two">&lt;!-- 5px 藍色框線 --&gt;</span>
&lt;button type=&quot;button&quot; &gt;Demo&lt;/button&gt;

<span class="code-two">&lt;!-- 5px 紅色框線 --&gt;</span>
&lt;button type=&quot;button&quot; disabled=&quot;disabled&quot;&gt;Demo&lt;/button&gt;
</pre>
<h3>:checked</h3>
<p>適用於匹配元素已核取的狀態(如 radio 或 checkbox)。</p>
<pre class="code-example">
input:checked + span {color: blue;}		<span class="code-two">/* 例如我們做這樣的設定時 */</span>

&lt;input type=&quot;checkbox&quot; checked=&quot;checked&quot; /&gt;	<span class="code-two">&lt;!-- 該項目預設為已核取 --&gt;</span>
&lt;span&gt;項目一&lt;/span&gt;				<span class="code-two">&lt;!-- 藍色字體 --&gt;</span>
&lt;input type=&quot;checkbox&quot; /&gt;
&lt;span&gt;項目二&lt;/span&gt;				<span class="code-two">&lt;!-- 繼承親代顏色 --&gt;</span>

<span class="code-two">&lt;!-- 當您核取項目二時, 它就會從繼承親代的顏色(例如黑色)<span class="red">動態</span>的變為藍色字體. --&gt;</span>
<span class="code-two">&lt;!-- 當您取消掉任何一個已核取的狀態時, 其字體顏色就會<span class="red">動態</span>的變為繼承親代顏色. --&gt;</span>
</pre>
<h3>:indeterminate</h3>
<p>例如 radio 與 checkbox 元素可以經由使用者來做切換的動作，但有時它會在不確定的狀態下，既不是已核取狀態也不是未核取狀態。會有這樣的結果，可能是由於元素的屬性或者是 DOM 操作上的因素。</p>
<p class="red"><u>所以，這個規範的未來版本可能會引入一個名為 <b>:indeterminate</b> 的擬類型(Pseudo-classes)來套用於不確定狀態的元素上。</u></p>
<h2>結構擬類型(Structural pseudo-classes)</h2>
<p>選取器引入了結構擬類型(Structural Pseudo-Classes)的概念，來允許在 HTML 結構樹中無法以簡單的選取器或組合來表達之額外資訊的選擇。</p>
<p>當在計算其父元素的所有子元素中之元素位置時，獨立的內容文字與其它非元素(Non-Element)的節點是不被計算的，並且其索引編號從 1 開始。</p>
<p>結構擬類型中，有四個功能強大與特別的擬類型，它可以讓設計人員依據元素的位置，然後一次選擇多個元素來做設定。對於這四個擬類型，在一開始也許會感到有些混亂；但是，一旦有了些許竅門，您會覺得並非那麼困難。這四個為 :nth-child()、:nth-last-child()、:nth-of-type() 與 :nth-last-of-type()。</p>
<h3>:nth-child()</h3>
<p><code class="code-one">:nth-child(<i><b>a</b></i>n+<i><b>b</b></i>)</code></p>
<ul>
<li><b class="red">b</b> &#8211; 代表我們在所有的相關序號位置中，要匹配的第一個元素位置(起始位置)。</li>
<li><b class="red">a</b> &#8211; 代表我們在所有的相關序號位置中，匹配之後的想要再次匹配之元素的間隔序號數目。</li>
<li><u>由前頭往後算，所以有正號就往下，有負號就往上。</u></li>
</ul>
<p>例如 2n+1 表示：我們要從群組中匹配第 1 個元素，之後再匹配間隔 2 個序號的元素( 1 + 2 = 3, 3 + 2 = 5, 5 + 2 = 7,&#8230;)。所以，該群組若有很多元素的話，其匹配的元素將會是第 1, 3, 5, 7, 9, 11…個。</p>
<pre class="code-example">
div#demo p:nth-child(2n+1) {		<span class="code-two">/* 例如我們做這樣的設定 */</span>
  background-color: pink;
}

&lt;div id=&quot;demo&quot;&gt;
	&lt;p&gt;第一段&lt;/p&gt;			<span class="code-two">&lt;!-- 粉紅色背景(起始位置, 往下) --&gt;</span>
	&lt;p&gt;第二段&lt;/p&gt;			<span class="code-two">&lt;!-- 繼承親代背景顏色 --&gt;</span>
	&lt;p&gt;第三段&lt;/p&gt;			<span class="code-two">&lt;!-- 粉紅色背景 --&gt;</span>
	&lt;p&gt;第四段&lt;/p&gt;			<span class="code-two">&lt;!-- 繼承親代背景顏色 --&gt;</span>
	&lt;p&gt;第五段&lt;/p&gt;			<span class="code-two">&lt;!-- 粉紅色背景 --&gt;</span>
&lt;/div&gt;
</pre>
<p class="red">2n+1 可以使用關鍵字 <b>odd</b> (奇數)取代；2n+0 可以使用關鍵字 <b>even</b> (偶數)取代。</p>
<p>an+b 表達式除了可以使用正號(加號)外，也可以使用負號(減號)。</p>
<pre class="code-example">
<span class="code-two">/* 一些例子 */</span>
:nth-child(10n-1) 等於 :nth-child(10n+9)
:nth-child(0n+5) 等於 :nth-child(5)
:nth-child(1n+0) 等於 :nth-child(n+0) 等於 nth-child(n)

:nth-child( 3n + 1 )
:nth-child( +3n - 2 )
:nth-child( -n+ 6)
:nth-child( +6 )
</pre>
<h3>:nth-last-child()</h3>
<p><code class="code-one">:nth-last-child(<i><b>a</b></i>n+<i><b>b</b></i>)</code></p>
<ul>
<li><b class="red">b</b> &#8211; 代表我們在所有的相關序號位置中，要匹配的最後一個元素位置(起始位置)。</li>
<li><b class="red">a</b> &#8211; 代表我們在所有的相關序號位置中，匹配之後的想要再次匹配之元素的間隔序號數目。</li>
<li><u>由後頭往前算，所以有正號就往上，有負號就往下。</u></li>
</ul>
<pre class="code-example">
div#demo p:nth-last-child(-n+2) {	<span class="code-two">/* 例如我們做這樣的設定 */</span>
  background-color: pink;
}

&lt;div id=&quot;demo&quot;&gt;
	&lt;p&gt;第一段&lt;/p&gt;			<span class="code-two">&lt;!-- 繼承親代背景顏色 --&gt;</span>
	&lt;p&gt;第二段&lt;/p&gt;			<span class="code-two">&lt;!-- 繼承親代背景顏色 --&gt;</span>
	&lt;p&gt;第三段&lt;/p&gt;			<span class="code-two">&lt;!-- 繼承親代背景顏色 --&gt;</span>
	&lt;p&gt;第四段&lt;/p&gt;			<span class="code-two">&lt;!-- 粉紅色背景(起始位置, 往下) --&gt;</span>
	&lt;p&gt;第五段&lt;/p&gt;			<span class="code-two">&lt;!-- 粉紅色背景 --&gt;</span>
&lt;/div&gt;

div#demo p:nth-last-child(n+2) {	<span class="code-two">/* 例如我們做這樣的設定 */</span>
  background-color: pink;
}

&lt;div id=&quot;demo&quot;&gt;
	&lt;p&gt;第一段&lt;/p&gt;			<span class="code-two">&lt;!-- 粉紅色背景 --&gt;</span>
	&lt;p&gt;第二段&lt;/p&gt;			<span class="code-two">&lt;!-- 粉紅色背景 --&gt;</span>
	&lt;p&gt;第三段&lt;/p&gt;			<span class="code-two">&lt;!-- 粉紅色背景 --&gt;</span>
	&lt;p&gt;第四段&lt;/p&gt;			<span class="code-two">&lt;!-- 粉紅色背景(起始位置, 往上) --&gt;</span>
	&lt;p&gt;第五段&lt;/p&gt;			<span class="code-two">&lt;!-- 繼承親代背景顏色 --&gt;</span>
&lt;/div&gt;
</pre>
<h3>:nth-of-type()</h3>
<p><code class="code-one">:nth-of-type(<i><b>a</b></i>n+<i><b>b</b></i>)</code></p>
<ul>
<li><b class="red">b</b> &#8211; 代表我們在所有的相關序號位置中，要匹配<b class="red">相同類型</b>的第一個元素位置(起始位置)。</li>
<li><b class="red">a</b> &#8211; 代表我們在所有的相關序號位置中，匹配之後的想要再次匹配之元素的間隔序號數目。</li>
<li><u>由前頭往後算，所以有正號就往下，有負號就往上。</u></li>
</ul>
<pre class="code-example">
div#demo p:nth-of-type(2n+1) {		<span class="code-two">/* 例如我們做這樣的設定 */</span>
  background-color: pink;
}

&lt;div id=&quot;demo&quot;&gt;
	&lt;p&gt;第一段&lt;/p&gt;			<span class="code-two">&lt;!-- 粉紅色背景(起始位置, 往下) --&gt;</span>
	&lt;div&gt;第二段&lt;/div&gt;		<span class="code-two">&lt;!-- 非 p 類型(<span class="red">忽略</span>) --&gt;</span>
	&lt;div&gt;第三段&lt;/div&gt;		<span class="code-two">&lt;!-- 非 p 類型(<span class="red">忽略</span>) --&gt;</span>
	&lt;p&gt;第四段&lt;/p&gt;			<span class="code-two">&lt;!-- 繼承親代背景顏色 --&gt;</span>
	&lt;p&gt;第五段&lt;/p&gt;			<span class="code-two">&lt;!-- 粉紅色背景 --&gt;</span>
&lt;/div&gt;
</pre>
<h3>:nth-last-of-type()</h3>
<p><code class="code-one">:nth-last-of-type(<i><b>a</b></i>n+<i><b>b</b></i>)</code></p>
<ul>
<li><b class="red">b</b> &#8211; 代表我們在所有的相關序號位置中，要匹配<b class="red">相同類型</b>的最後一個元素位置(起始位置)。</li>
<li><b class="red">a</b> &#8211; 代表我們在所有的相關序號位置中，匹配之後的想要再次匹配之元素的間隔序號數目。</li>
<li><u>由後頭往前算，所以有正號就往上，有負號就往下。</u></li>
</ul>
<pre class="code-example">
div#demo p:nth-last-of-type(n+2) {	<span class="code-two">/* 例如我們做這樣的設定 */</span>
  background-color: pink;
}

&lt;div id=&quot;demo&quot;&gt;
	&lt;p&gt;第一段&lt;/p&gt;			<span class="code-two">&lt;!-- 粉紅色背景 --&gt;</span>
	&lt;div&gt;第二段&lt;/div&gt;		<span class="code-two">&lt;!-- 非 p 類型(<span class="red">忽略</span>) --&gt;</span>
	&lt;div&gt;第三段&lt;/div&gt;		<span class="code-two">&lt;!-- 非 p 類型(<span class="red">忽略</span>) --&gt;</span>
	&lt;p&gt;第四段&lt;/p&gt;			<span class="code-two">&lt;!-- 粉紅色背景(起始位置, 往上) --&gt;</span>
	&lt;p&gt;第五段&lt;/p&gt;			<span class="code-two">&lt;!-- 繼承親代背景顏色 --&gt;</span>
&lt;/div&gt;
</pre>
<h3>:root</h3>
<p>適用於用來代表文件中的根元素，例如在 HTML 文件中，是表示 &lt;html&gt; 元素標籤。</p>
<h3>:first-child</h3>
<p>適用於用來代表任何處於其它父元素的第一個子代。</p>
<pre class="code-example">
div#demo p:first-child {color: red;}	<span class="code-two">/* 例如我們做這樣的設定 */</span>

&lt;div id=&quot;demo&quot;&gt;
	&lt;p&gt;第一段&lt;/p&gt;			<span class="code-two">&lt;!-- 第一個子代(紅色字體) --&gt;</span>
	&lt;p&gt;第二段&lt;/p&gt;			<span class="code-two">&lt;!-- 繼承親代顏色 --&gt;</span>
	&lt;p&gt;第三段&lt;/p&gt;			<span class="code-two">&lt;!-- 繼承親代顏色 --&gt;</span>
&lt;/div&gt;
</pre>
<h3>:last-child</h3>
<p>適用於用來代表任何處於其它父元素的最後一個子代。</p>
<pre class="code-example">
div#demo p:last-child {color: red;}	<span class="code-two">/* 例如我們做這樣的設定 */</span>

&lt;div id=&quot;demo&quot;&gt;
	&lt;p&gt;第一段&lt;/p&gt;			<span class="code-two">&lt;!-- 繼承親代顏色 --&gt;</span>
	&lt;p&gt;第二段&lt;/p&gt;			<span class="code-two">&lt;!-- 繼承親代顏色 --&gt;</span>
	&lt;p&gt;第三段&lt;/p&gt;			<span class="code-two">&lt;!-- 最後一個子代(紅色字體) --&gt;</span>
&lt;/div&gt;
</pre>
<h3>:first-of-type</h3>
<p>適用於匹配我們所指定元素類型的第一個子代元素。</p>
<pre class="code-example">
div#demo p:first-of-type {color: red;}	<span class="code-two">/* 指定 p 類型 */</span>

&lt;div id=&quot;demo&quot;&gt;
	&lt;div&gt;第一段&lt;/div&gt;		<span class="code-two">&lt;!-- 繼承親代顏色 --&gt;</span>
	&lt;p&gt;第二段&lt;/p&gt;			<span class="code-two">&lt;!-- 第一個子代(紅色字體) --&gt;</span>
	&lt;p&gt;第三段&lt;/p&gt;			<span class="code-two">&lt;!-- 繼承親代顏色 --&gt;</span>
&lt;/div&gt;
</pre>
<h3>:last-of-type</h3>
<p>適用於匹配我們所指定元素類型的最後一個子代元素。</p>
<pre class="code-example">
div#demo p:last-of-type {color: red;}	<span class="code-two">/* 指定 p 類型 */</span>

&lt;div id=&quot;demo&quot;&gt;
	&lt;div&gt;第一段&lt;/div&gt;		<span class="code-two">&lt;!-- 繼承親代顏色 --&gt;</span>
	&lt;p&gt;第二段&lt;/p&gt;			<span class="code-two">&lt;!-- 繼承親代顏色) --&gt;</span>
	&lt;p&gt;第三段&lt;/p&gt;			<span class="code-two">&lt;!-- 最後一個子代(紅色字體) --&gt;</span>
	&lt;div&gt;第四段&lt;/div&gt;		<span class="code-two">&lt;!-- 繼承親代顏色 --&gt;</span>
&lt;/div&gt;
</pre>
<h3>:only-child</h3>
<p>適用於用來代表任何處於其它父元素的子代並且只有該子代元素。</p>
<pre class="code-example">
p:only-child {color: red;}		<span class="code-two">/* 例如我們做這樣的設定 */</span>

&lt;p&gt;第一段&lt;/p&gt;				<span class="code-two">&lt;!-- 繼承親代顏色 --&gt;</span>
&lt;p&gt;第二段&lt;/p&gt;				<span class="code-two">&lt;!-- 繼承親代顏色 --&gt;</span>
&lt;div&gt;
	&lt;p&gt;第三段&lt;/p&gt;			<span class="code-two">&lt;!-- 紅色 --&gt;</span>
&lt;/div&gt;
<span class="code-two">&lt;!-- 續 --&gt;</span>
&lt;p&gt;第一段&lt;/p&gt;				<span class="code-two">&lt;!-- 繼承親代顏色 --&gt;</span>
&lt;p&gt;第二段&lt;/p&gt;				<span class="code-two">&lt;!-- 繼承親代顏色 --&gt;</span>
&lt;div&gt;
	&lt;p&gt;第三段&lt;/p&gt;			<span class="code-two">&lt;!-- 繼承親代顏色 --&gt;</span>
	&lt;p&gt;第四段&lt;/p&gt;			<span class="code-two">&lt;!-- 繼承親代顏色 --&gt;</span>
&lt;/div&gt;
</pre>
<h3>:only-of-type</h3>
<p>適用於用來代表任何處於其它父元素的子代並且只有該唯一子代元素匹配我們指定的類型。</p>
<pre class="code-example">
b:only-of-type {color: red;}		<span class="code-two">/* 指定 b 類型 */</span>

&lt;p&gt;&lt;b&gt;第一段&lt;/b&gt;&lt;/p&gt;			<span class="code-two">&lt;!-- 紅色 --&gt;</span>
&lt;p&gt;&lt;b&gt;第二段&lt;/b&gt;&lt;b&gt;第二個 b 元素&lt;/b&gt;&lt;/p&gt;	<span class="code-two">&lt;!-- 繼承親代顏色 --&gt;</span>
&lt;p&gt;&lt;b&gt;第三段&lt;/b&gt;&lt;/p&gt;			<span class="code-two">&lt;!-- 紅色 --&gt;</span>
&lt;p&gt;&lt;i&gt;第四段&lt;/i&gt;&lt;/p&gt;			<span class="code-two">&lt;!-- 繼承親代顏色 --&gt;</span>
</pre>
<h3>:empty</h3>
<p>適用於用來代表一個沒有任何內容與子代的空元素標籤。元素節點和非空(non-empty)文字節點都是被認做為是子代元素；空文字節點、註解與指令的處理都不屬於子代元素。</p>
<pre class="code-example">
&lt;p&gt;&lt;/p&gt;					<span class="code-two">&lt;!-- 有效的空元素標籤 --&gt;</span>
&lt;p&gt;hello&lt;/p&gt;				<span class="code-two">&lt;!-- 無效的空元素標籤 --&gt;</span>
</pre>
<h3>:contains()</h3>
<p>這個擬類型目前沒有資料。</p>
<h2>否定擬類型(The negation pseudo-class)</h2>
<h3>:not()</h3>
<p><code class="code-one">:not(<i><b>simple selector</b></i>)</code></p>
<p>適用於用來指定不匹配的選取器。</p>
<pre class="code-example">
div:not(.Item) {border: 1px solid red;}	<span class="code-two">/* 排除 div class=&quot;Item&quot; */</span>

&lt;div class=&quot;Item&quot;&gt;第一段&lt;/div&gt;		<span class="code-two">&lt;!-- 無框線 --&gt;</span>
&lt;div&gt;第二段&lt;/div&gt;			<span class="code-two">&lt;!-- 有框線 --&gt;</span>
</pre>
]]></content:encoded>
			<wfw:commentRss>http://blog.beyes.tw/219/feed</wfw:commentRss>
		<slash:comments>1</slash:comments>
		</item>
		<item>
		<title>CSS3 選取器(選擇器, Selector)</title>
		<link>http://blog.beyes.tw/201</link>
		<comments>http://blog.beyes.tw/201#comments</comments>
		<pubDate>Fri, 02 Jul 2010 07:40:56 +0000</pubDate>
		<dc:creator>skyfate</dc:creator>
				<category><![CDATA[CSS3]]></category>
		<category><![CDATA[CSS]]></category>

		<guid isPermaLink="false">http://blog.beyes.tw/?p=201</guid>
		<description><![CDATA[選取器(Selectors)
Selector ——顧名思義就是選擇我們想套用樣式的標的物。
通常選取器的選擇，我們都是使用 HTML 已命名的標籤名稱來作為我們的選取器，例如 div 或 p 等等的標籤名。一旦完整設定之後，整個樣式的效果就會表現在我們所選擇的 HTML 標籤或其內容，然後在瀏覽器上呈現。
例如：我們在 HTML 文件中如果想讓 &#60;div&#62; 標籤在瀏覽器上呈現出有框線的話，這時我們就要找一個「目標」來套用相關的樣式；這時，我們就可以選擇 &#60;div&#62; 標籤中的 div 這三個字來作為我們的目標，像這樣經過我們選擇之後的目標文字就是——選取器(Selector)。

div {border: 1px solid red;}		/* 選擇 div 標籤作為選取器 */
p {color: blue;}			/* 選擇 p 標籤作為選取器 */

不過這樣的表現方式常會有問題產生，例如上述之中所表示的是：所有的 div 標籤均有 1px 寬度的紅色框線，所有的 p 標籤，其文字顏色(前景顏色)為藍色；除非您真的打算這麼做。
想要套用樣式，最好的方式就是為標籤加上識別選取器(id)或類型選取器(class)；如此一來的話，想要套用樣式的地方依舊可以套用，而不想套用的地方依舊可以保有原有的格式。若是其它的標籤不會用到的話，也可以直接在標籤之中插入 style 屬性來設置樣式。

div#myDemo {border: 1px solid red;}	/* 加入 #myDemo 識別選取器 */
p.myDemo {color: blue;}			/* 加入 .myDemo 類型選取器 */
&#60;p style=&#34;color: [...]]]></description>
			<content:encoded><![CDATA[<h2>選取器(Selectors)</h2>
<p>Selector ——顧名思義就是選擇我們想套用樣式的標的物。</p>
<p>通常選取器的選擇，我們都是使用 HTML 已命名的標籤名稱來作為我們的選取器，例如 div 或 p 等等的標籤名。一旦完整設定之後，整個樣式的效果就會表現在我們所選擇的 HTML 標籤或其內容，然後在瀏覽器上呈現。</p>
<p>例如：我們在 HTML 文件中如果想讓 &lt;div&gt; 標籤在瀏覽器上呈現出有框線的話，這時我們就要找一個「目標」來套用相關的樣式；這時，我們就可以選擇 &lt;div&gt; 標籤中的 div 這三個字來作為我們的目標，像這樣經過我們選擇之後的目標文字就是——選取器(Selector)。</p>
<pre class="code-example">
div {border: 1px solid red;}		<span class="code-two">/* 選擇 div 標籤作為選取器 */</span>
p {color: blue;}			<span class="code-two">/* 選擇 p 標籤作為選取器 */</span>
</pre>
<p>不過這樣的表現方式常會有問題產生，例如上述之中所表示的是：所有的 div 標籤均有 1px 寬度的紅色框線，所有的 p 標籤，其文字顏色(前景顏色)為藍色；除非您真的打算這麼做。</p>
<p>想要套用樣式，最好的方式就是為標籤加上<b class="red">識別選取器(id)</b>或<b class="red">類型選取器(class)</b>；如此一來的話，想要套用樣式的地方依舊可以套用，而不想套用的地方依舊可以保有原有的格式。若是其它的標籤不會用到的話，也可以直接在標籤之中插入 <b class="red">style 屬性</b>來設置樣式。</p>
<pre class="code-example">
div#myDemo {border: 1px solid red;}	<span class="code-two">/* 加入 #myDemo 識別選取器 */</span>
p.myDemo {color: blue;}			<span class="code-two">/* 加入 .myDemo 類型選取器 */</span>
&lt;p style=&quot;color: red;&quot;&gt;...&lt;/p&gt;		<span class="code-two">/* 插入 style 屬性到標籤中 */</span>
</pre>
<h2>語法的基本規則結構</h2>
<p><img src="http://i19.photobucket.com/albums/b152/skyfate/cblog/id004-1.png" alt="" style="float: right;" /></p>
<p>在每個規則結構之中都包含有兩個部份，第一個部分是<b>選取器</b>，這是用來決定那些已命名的 HTML 元素標籤名稱或者由我們自定的名稱會受到樣式與其值的影響。</p>
<p>第二個部分則是<b>樣式宣告</b>，由一組或多組<u>屬性(性質)樣式：樣式值</u>來指定選取器的動作，也就是 <b class="red">{</b> 與 <b class="red">}</b> 所括起來的部份。倘若選擇器之中，有一個以上的屬性樣式，記得在<span class="red">每組之間用分號「;」隔開彼此</span>。像這樣每組之間使用分號來「串接」的方式也就是其串接式樣式表名稱的由來。※如果只有一組樣式的話，其實是不用分號的，不過為了好習慣還是建議寫上。</p>
<h2>類型選取器(Type selector)</h2>
<p>類型選取器，我們從另個角度來說，也可以把它稱之為標籤選取器。在 HTML 文件中，有許多的元素標籤，而這些<b>已命名</b>的標籤名稱可供我們來使用。</p>
<p>簡單講，類型選取器就是選取文件中的標籤類型。</p>
<pre class="code-example">
h1 {color: red;}			<span class="code-two">/* 選取 h1 類型的標籤 */</span>
div {border: 1px solid blue;}		<span class="code-two">/* 選取 div 類型的標籤 */</span>
p {letter-spacing: 2px;}		<span class="code-two">/* 選取 p 類型的標籤 */</span>
</pre>
<h2>全域選取器(Universal selector)</h2>
<p>全域，指的就是一份 HTML 文件中，任何的元素標籤類型(Element Type)。使用 <span class="red">* 號</span>來表示全域選取器。</p>
<pre class="code-example">
*.myDemo {color: red;}			<span class="code-two">/* 任何含有 class=&quot;myDemo&quot; 的標籤 */</span>
*#myDemo {color: red;}			<span class="code-two">/* 任何含有 id=&quot;myDemo&quot; 的標籤 */</span>
</pre>
<p>在上述的例子中，&quot;*.myDemo 同等於 .myDemo&quot; 並且 &quot;*#myDemo 同等於 #myDemo&quot;。雖是如此，但為了不造成選取器間的混亂與增進樣式表的可讀性，推薦您不要忽略 * 號。</p>
<pre class="code-example">
div :first-child			<span class="code-two">/* 意義不同於 div:first-child */</span>
div:first-child				<span class="code-two">/* 意義不同於 div :first-child */</span>

div *:first-child			<span class="code-two">/* 可讀性提高-等同 div :first-child */</span>
</pre>
<p>如果不懂上方例子中的說明，那我們再來兩個例子做比較應該會清楚些。</p>
<pre class="code-example">
div {color: red;}
div:first-child {color: blue;}		<span class="code-two">/* 第一個 div */</span>

&lt;div&gt;
　　&lt;p&gt;第一列&lt;/p&gt;				<span class="code-two">&lt;!-- 藍色文字(文字顏色繼承) --&gt;</span>
　　&lt;p&gt;第二列&lt;/p&gt;				<span class="code-two">&lt;!-- 藍色文字(文字顏色繼承) --&gt;</span>
　　&lt;div&gt;
　　	&lt;p&gt;第三列&lt;/p&gt;			<span class="code-two">&lt;!-- 紅色文字 --&gt;</span>
　　	&lt;p&gt;第四列&lt;/p&gt;			<span class="code-two">&lt;!-- 紅色文字 --&gt;</span>
　　&lt;/div&gt;
&lt;/div&gt;
</pre>
<pre class="code-example">
div {color: red;}
div :first-child {color: blue;}		<span class="code-two">/* div 標籤下所有的第一個子代(任何標籤) */</span>

&lt;div&gt;
　　&lt;p&gt;第一列&lt;/p&gt;				<span class="code-two">&lt;!-- 藍色文字 --&gt;</span>
　　&lt;p&gt;第二列&lt;/p&gt;				<span class="code-two">&lt;!-- 紅色文字 --&gt;</span>
　　&lt;div&gt;
　　	&lt;p&gt;第三列&lt;/p&gt;			<span class="code-two">&lt;!-- 藍色文字 --&gt;</span>
　　	&lt;p&gt;第四列&lt;/p&gt;			<span class="code-two">&lt;!-- 紅色文字 --&gt;</span>
　　&lt;/div&gt;
&lt;/div&gt;
</pre>
<p>因此，一個不小心筆誤的話，就會造成不同的效果；所以加上個 * 號的話，是會更清楚些。</p>
<h2>群組選取器(Groups of selectors)</h2>
<p>當有很多選取器的樣式是相同時，就可以使用這個方式來簡化。<span class="red">※記得在選取器與選取器之間，使用逗號 &quot;,&quot; 來區隔。</span></p>
<pre class="code-example">
<span class="code-two">/* 例如原本的樣式如下 */</span>
div#demoA {border: 1px solid black;}
div#demoB {border: 1px solid black;}
div#demoC {border: 1px solid black;}

<span class="code-two">/* 這時就可簡化成如下 */</span>
div#demoA, div#demoB, div#demoC {border: 1px solid black;}
</pre>
<p>在上述的例子中，因為每個單一的選取器是合法且有效的，所以整個群組選取器自然而然就是有效的語法結構；如果其一有非法且無效的選取器，那麼整個群組就會無效。</p>
<h2>識別選取器(id)與類型選取器(class)</h2>
<p>id 與 class 是我們在 HTML 標籤中，用來<u>呼叫使用我們自定名稱所設定的樣式。</u>例如：</p>
<pre class="code-example">
&lt;div id=&quot;myDemo&quot;&gt;您的內容&lt;/div&gt;		<span class="code-two">/* 在 div 標籤中加入 id 屬性名稱 */</span>
&lt;div class=&quot;myDemo&quot;&gt;您的內容&lt;/div&gt;	<span class="code-two">/* 在 div 標籤中加入 class 屬性名稱 */</span>
</pre>
<p>在上述例子裡，我們在 &lt;div&gt; 中置了一個 id=&quot;myDemo&quot;，其所代表的意義為——在該標籤中呼叫了一個我們自定識別選取器名稱為 myDemo 的選取器，所以在這個 &lt;div&gt;…&lt;/div&gt; 標籤對中的內容就會依照這個選取器所設定的樣式屬性與屬性值來呈現。</p>
<h3>識別選取器(id)</h3>
<p><code class="code-one">#id名稱 {樣式屬性: 樣式值;}</code></p>
<pre class="code-example">
#myDemo {border: 1px solid blue;}	<span class="code-two">/* 不限定何種標籤 */</span>
</pre>
<p>只要在標籤中加上 id=&quot;您自定的名稱&quot;，也就是識別選取器名稱，這樣便可呼叫使用。若是前頭不加 HTML 的標籤名，則表示它可以套用在任何的標籤上(不限定)。<span class="red">※不要忘記名稱前頭的 # 字號。</span></p>
<p><code class="code-one">標籤名稱#id名稱 {樣式屬性: 樣式值;}</code></p>
<pre class="code-example">
div#myDemo {border: 1px solid blue;}	<span class="code-two">/* 限定於 div 標籤 */</span>
</pre>
<p>有些樣式並非每種標籤都適用或者您只想限定在某標籤上來使用樣式，這時上述的格式就是用來限定標籤可以使用的識別選取器。例如：div#myDemo，則是表示 #myDemo 這個識別選取器只能用在 div 標籤中。</p>
<p class="red">※注意：若未加上限定的標籤則表示所有的標籤皆可使用，不過這有賴於當中的樣式屬性是否適用於該標籤。</p>
<h3>類型選取器(class)</h3>
<p><code class="code-one">.class名稱 {樣式屬性: 樣式值;}</code></p>
<pre class="code-example">
.myDemo {border: 1px solid blue;}	<span class="code-two">/* 不限定何種標籤 */</span>
</pre>
<p>只要在標籤中加上 class=&quot;您自訂的名稱&quot;，也就是類型選取器名稱，這樣便可呼叫使用。若是前頭不加標記語言的標籤名，則表示它可以套用在任何的標籤上(不限定)。<span class="red">※不要忘記名稱前頭的 . 句點。</span></p>
<p><code class="code-one">標籤名稱.class名稱 {樣式屬性: 樣式值;}</code></p>
<pre class="code-example">
div.myDemo {border: 1px solid blue;}	<span class="code-two">/* 限定於 div 標籤 */</span>
</pre>
<p>有些樣式並非每種標籤都適用或者您只想限定在某標籤上來使用樣式，這時上述的格式就是用來限定標籤可以使用的識別選取器。例如：div.myDemo，則是表示 .myDemo 這個類型選取器只能用在 div 標籤中。</p>
<p class="red">※注意：若未加上限定的標籤則表示所有的標籤皆可使用，不過這有賴於當中的樣式屬性是否適用於該標籤。</p>
<h3>class 與 id 的不同處</h3>
<p>同樣一個 class 適合於好幾個不同標籤來使用，不過 id 卻只能適用於單一標籤，在可擴展超文件標記語言標準中更是嚴格。其實使用這兩個定義也不用去想那麼多，在「標準網頁」中只要記住一個大原則就可以了，那就是在「同一份」網頁中，其相同 id 的名稱只能出現一次，只要記住這點的話，那就差不多不會出錯了。</p>
<h2>屬性選取器(Attribute selector)</h2>
<p>元素標籤的屬性(attribute)也可以用來作為選取器。當您想使用屬性選取器時，必須考慮到目標元素標籤(Element)是否有相匹配的屬性來作為您想要的屬性選取器。</p>
<h3>存在的屬性與其值的選取器</h3>
<p><code class="code-one">Element[att]</code></p>
<p>選取具有 att 屬性的元素標籤，並且無論其屬性值為何。</p>
<pre class="code-example">
&lt;h1 class=&quot;Demo&quot;&gt;標題&lt;/h1&gt;	<span class="code-two">&lt;!-- h1 標籤有一個 class 屬性其值為 Demo --&gt;</span>

h1[class] {color: red;}		<span class="code-two">/* 將具有 class 屬性的 h1 標籤設定成紅色字體 */</span>
h1[class][title]		<span class="code-two">/* 設定同時有 class 與 title 屬性的 h1 標籤 */</span>
</pre>
<p><code class="code-one">Element[att=val]</code></p>
<p>選取具有 att 屬性並且其值為 val 的元素標籤。</p>
<pre class="code-example">
&lt;h1 class=&quot;Demo&quot; title=&quot;Post-Title&quot;&gt;標題&lt;/h1&gt;

<span class="code-two">/* 當 h1 標籤的 class 屬性值為 Demo 時所設定的條件才成立 */</span>

h1[class=&quot;Demo&quot;] {color: red;}

<span class="code-two">/* 當 h1 標籤的 class 屬性值為 Demo 並且 title 屬性值為 Post-Title 時所設定的條件才成立 */</span>

h1[class=&quot;Demo&quot;][title=&quot;Post-Title&quot;] {color: red;}
</pre>
<p><code class="code-one">Element[att~=val]</code></p>
<p>選取具有 <code>att</code> 屬性並且 <code>val</code> 為其值(使用空格分開的複數值)之一的元素標籤。</p>
<pre class="code-example">
&lt;h1 class=&quot;Demo1 Demo2&quot;&gt;標題&lt;/h1&gt;

<span class="code-two">/* 當 h1 標籤的 class 屬性值其一為 Demo2 時所設定的條件才成立 */</span>

h1[class~=&quot;Demo2&quot;] {color: red;}
</pre>
<p><code class="code-one">Element[att|=val]</code></p>
<p>選取具有 att 屬性並且其值是以 val 或 val 之後接有連字號 &#8211; 作為開始的元素標籤。</p>
<pre class="code-example">
h1[class|=&quot;Demo&quot;] {color: red;}		<span class="code-two">/* 例如我們做這樣的設定 */</span>

&lt;h1 class=&quot;Demo&quot;&gt;標題&lt;/h1&gt;		<span class="code-two">/* 有作用 */</span>
&lt;h1 class=&quot;Demo-1&quot;&gt;標題&lt;/h1&gt;		<span class="code-two">/* 有作用 */</span>
&lt;h1 class=&quot;Demo-2&quot;&gt;標題&lt;/h1&gt;		<span class="code-two">/* 有作用 */</span>
&lt;h1 class=&quot;DemoABCD&quot;&gt;標題&lt;/h1&gt;		<span class="code-two">/* 無作用 */</span>
&lt;h1 class=&quot;Red-FT&quot;&gt;標題&lt;/h1&gt;		<span class="code-two">/* 無作用 */</span>
</pre>
<h3>子字串匹配的屬性選取器</h3>
<p><code class="code-one">[att^=val]</code></p>
<p>選取具有 att 屬性並且其值是以 val 作為開頭字首(前綴，Prefix)的元素標籤。如果 val 為空字串的話，該選取器將不代表任何東西。</p>
<pre class="code-example">
p[title^=&quot;demo&quot;] {color: red;}		<span class="code-two">/* 例如我們做這樣的設定 */</span>

&lt;p title=&quot;demo&quot;&gt;測試&lt;/p&gt;			<span class="code-two">/* 有作用 */</span>
&lt;p title=&quot;demoabcde&quot;&gt;測試&lt;/p&gt;		<span class="code-two">/* 有作用 */</span>
&lt;p title=&quot;abcdedemo&quot;&gt;測試&lt;/p&gt;		<span class="code-two">/* 無作用 */</span>
&lt;p title=&quot;&quot;&gt;測試&lt;/p&gt;			<span class="code-two">/* 無作用 */</span>
</pre>
<p><code class="code-one">[att$=val]</code></p>
<p>選取具有 att 屬性並且其值是以 val 作為結尾字首(後綴，suffix)的元素標籤。如果 val 為空字串的話，該選取器將不代表任何東西。</p>
<pre class="code-example">
p[title$=&quot;demo&quot;] {color: red;}		<span class="code-two">/* 例如我們做這樣的設定 */</span>

&lt;p title=&quot;demo&quot;&gt;測試&lt;/p&gt;			<span class="code-two">/* 有作用 */</span>
&lt;p title=&quot;demoabcde&quot;&gt;測試&lt;/p&gt;		<span class="code-two">/* 無作用 */</span>
&lt;p title=&quot;abcdedemo&quot;&gt;測試&lt;/p&gt;		<span class="code-two">/* 有作用 */</span>
&lt;p title=&quot;&quot;&gt;測試&lt;/p&gt;			<span class="code-two">/* 無作用 */</span>
</pre>
<p><code class="code-one">[att*=val]</code></p>
<p>選取具有 att 屬性並且其值包含有子字串 val 的元素標籤。如果 val 為空字串的話，該選取器將不代表任何東西。</p>
<pre class="code-example">
p[title*=&quot;a&quot;] {color: red;}		<span class="code-two">/* 例如我們做這樣的設定 */</span>

&lt;p title=&quot;apple&quot;&gt;測試&lt;/p&gt;		<span class="code-two">/* 有作用 */</span>
&lt;p title=&quot;paper&quot;&gt;測試&lt;/p&gt;		<span class="code-two">/* 有作用 */</span>
&lt;p title=&quot;thank&quot;&gt;測試&lt;/p&gt;		<span class="code-two">/* 有作用 */</span>
&lt;p title=&quot;think&quot;&gt;測試&lt;/p&gt;		<span class="code-two">/* 無作用 */</span>
&lt;p title=&quot;&quot;&gt;測試&lt;/p&gt;			<span class="code-two">/* 無作用 */</span>
</pre>
<h2>後代選取器(Descendant selector)</h2>
<p><code class="code-one">Selector1 Selector2 Selector3 ...</code></p>
<p>用來選擇「後代」關係的選取器。</p>
<pre class="code-example">
div p b {color: red;}			<span class="code-two">/* 例如我們做這樣的設定 */</span>
<span class="code-two">/* 只有當 b 選取器的父元素為 p 並且其親代元素為 div 時，b 選取器才有作用 */</span>

&lt;div&gt;
	&lt;p&gt;測試&lt;/p&gt;			<span class="code-two">&lt;!-- 繼承親代顏色 --&gt;</span>
	&lt;p&gt;&lt;b&gt;測試&lt;/b&gt;&lt;/p&gt;		<span class="code-two">&lt;!-- 我們設定的紅色 --&gt;</span>
&lt;/div&gt;
</pre>
<h2>子代選取器(Child selector)</h2>
<p><code class="code-one">Selector &gt; Selector</code></p>
<p>用來選擇「子代」關係的選取器。</p>
<p>例如在下方的例子中，第一層的 div#Demo 為父元素，所以只有它第一代的 p 元素會受影響變為紅色。也就是說選取任何為 div#Demo 的子元素( p 標籤)。</p>
<pre class="code-example">
div#Demo &gt; p {color: red;}		<span class="code-two">/* 設定 div#Demo 之子元素的前景顏色 */</span>
p {color: blue;}

&lt;div id=&quot;Demo&quot;&gt;
	&lt;p&gt;第一代&lt;/p&gt;			<span class="code-two">&lt;!-- 紅色 --&gt;</span>
	&lt;p&gt;第一代&lt;/p&gt;			<span class="code-two">&lt;!-- 紅色 --&gt;</span>
	&lt;div&gt;
		&lt;p&gt;第二代&lt;/p&gt;&lt;/div&gt;	<span class="code-two">&lt;!-- 藍色 --&gt;</span>
	&lt;div&gt;
		&lt;p&gt;第二代&lt;/p&gt;&lt;/div&gt;	<span class="code-two">&lt;!-- 藍色 --&gt;</span>
	&lt;p&gt;第一代&lt;/p&gt;			<span class="code-two">&lt;!-- 紅色 --&gt;</span>
&lt;/div&gt;
</pre>
<h2>兄弟選取器(Sibling selector)</h2>
<p><code class="code-one">Selector + Selector</code></p>
<p>用來選擇「兄弟」關係的選取器。</p>
<pre class="code-example">
h1 + p {color: red;}			<span class="code-two">/* 例如我們做這樣的設定 */</span>
<span class="code-two">/* 當緊接在 h1 之後並且與 h1 同屬於一個親代(div)的 p 元素 */</span>

&lt;div&gt;
	&lt;h1&gt;測試&lt;/h1&gt;			<span class="code-two">&lt;!-- 繼承親代顏色 --&gt;</span>
	&lt;p&gt;測試&lt;/p&gt;			<span class="code-two">&lt;!-- 我們設定的紅色 --&gt;</span>
	&lt;p&gt;測試&lt;/p&gt;			<span class="code-two">&lt;!-- 繼承親代顏色 --&gt;</span>
&lt;/div&gt;
</pre>
<h2>一般兄弟元素組合(General sibling combinator)</h2>
<p><code class="code-one">Selector ~ Selector</code></p>
<p>這是用來選取指定的「兄弟元素」，選取器與選取器之間使用<b class="red">~</b>(tilde) 波浪符號連接。</p>
<pre class="code-example">
h1 ~ p {border: 1px solid blue;}	<span class="code-two">/* 指定 h1 的兄弟 p */</span>

&lt;h1&gt;第一段&lt;/h1&gt;				<span class="code-two">&lt;!-- 無作用 --&gt;</span>
&lt;div&gt;第二段&lt;/div&gt;			<span class="code-two">&lt;!-- 無作用 --&gt;</span>
&lt;p&gt;第三段&lt;/p&gt;				<span class="code-two">&lt;!-- 指定的 p 兄弟 --&gt;</span>
&lt;h3&gt;第四段&lt;/h3&gt;				<span class="code-two">&lt;!-- 無作用 --&gt;</span>
&lt;p&gt;第五段&lt;/p&gt;				<span class="code-two">&lt;!-- 指定的 p 兄弟 --&gt;</span>
</pre>
]]></content:encoded>
			<wfw:commentRss>http://blog.beyes.tw/201/feed</wfw:commentRss>
		<slash:comments>2</slash:comments>
		</item>
		<item>
		<title>CSS3 階層(Hierarchy)與繼承(Inheritance)</title>
		<link>http://blog.beyes.tw/205</link>
		<comments>http://blog.beyes.tw/205#comments</comments>
		<pubDate>Fri, 02 Jul 2010 07:35:03 +0000</pubDate>
		<dc:creator>skyfate</dc:creator>
				<category><![CDATA[CSS3]]></category>
		<category><![CDATA[CSS]]></category>

		<guid isPermaLink="false">http://blog.beyes.tw/?p=205</guid>
		<description><![CDATA[階層(Hierarchy)

串接式樣式表(CSS)本身並無階層實體，它必須依附於超文件標記語言(HTML)的元素標籤(Element)來產生所謂的「階層」；我們換個角度來說，CSS 的「階層」是由我們在 HTML 文件中，依據我們自己所需的 HTML 元素標籤而自動被建立的。
階層對於串接式樣式表而言是基本與重要的一個概念，因為許多的選取器(Selector)是靠這種關係來選取的。而像這樣的階層結構也順帶衍生出——「親子關係」。
親子關係(Parent-Child Relationship)
我們使用上述的圖片來簡單說明一下：

div#styleA 與 div#styleB 標籤兩者之間屬於「兄弟元素」(同胞元素)。
兩個 li 標籤一樣同屬於「兄弟元素」。
兩個 li 標籤的「父元素」為 ul 標籤。
兩個 li 標籤的「親代元素」有 ul 標籤、div#styleA 標籤及 body 標籤。
div#styleA 標籤的「子元素」為 ul 標籤。
div#styleA 標籤的「子代元素」有 ul 標籤與兩個 li 標籤。

繼承(Inheritance)
「繼承」在樣式表中，是蠻重要的一個機制，這樣的機制是將某些樣式(Style)的性質特性傳給它的「子代元素」。例如，color 這個樣式屬性，在設定好之後，它就會將這個「性質」傳承給它的子代。
「繼承」顧名思義，它不具有「可逆性」；只有它的子代能繼承，而無法繼承給親代。
]]></description>
			<content:encoded><![CDATA[<h2>階層(Hierarchy)</h2>
<p><img src="http://i19.photobucket.com/albums/b152/skyfate/cblog/id003-1.png" style="float: right;" alt="" /></p>
<p>串接式樣式表(CSS)本身並無階層實體，它必須依附於超文件標記語言(HTML)的元素標籤(Element)來產生所謂的「階層」；我們換個角度來說，CSS 的「階層」是由我們在 HTML 文件中，依據我們自己所需的 HTML 元素標籤而自動被建立的。</p>
<p>階層對於串接式樣式表而言是基本與重要的一個概念，因為許多的選取器(Selector)是靠這種關係來選取的。而像這樣的階層結構也順帶衍生出——「親子關係」。</p>
<h3>親子關係(Parent-Child Relationship)</h3>
<p>我們使用上述的圖片來簡單說明一下：</p>
<ul>
<li>div#styleA 與 div#styleB 標籤兩者之間屬於「兄弟元素」(同胞元素)。</li>
<li>兩個 li 標籤一樣同屬於「兄弟元素」。</li>
<li>兩個 li 標籤的「父元素」為 ul 標籤。</li>
<li>兩個 li 標籤的「親代元素」有 ul 標籤、div#styleA 標籤及 body 標籤。</li>
<li>div#styleA 標籤的「子元素」為 ul 標籤。</li>
<li>div#styleA 標籤的「子代元素」有 ul 標籤與兩個 li 標籤。</li>
</ul>
<h2>繼承(Inheritance)</h2>
<p>「繼承」在樣式表中，是蠻重要的一個機制，這樣的機制是將某些樣式(Style)的性質特性傳給它的「子代元素」。例如，color 這個樣式屬性，在設定好之後，它就會將這個「性質」傳承給它的子代。</p>
<p>「繼承」顧名思義，它不具有「可逆性」；只有它的子代能繼承，而無法繼承給親代。</p>
]]></content:encoded>
			<wfw:commentRss>http://blog.beyes.tw/205/feed</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
		<item>
		<title>最後只剩下放廣告的方式</title>
		<link>http://blog.beyes.tw/411</link>
		<comments>http://blog.beyes.tw/411#comments</comments>
		<pubDate>Sat, 12 Jun 2010 11:08:43 +0000</pubDate>
		<dc:creator>skyfate</dc:creator>
				<category><![CDATA[網路與電腦]]></category>

		<guid isPermaLink="false">http://blog.beyes.tw/?p=411</guid>
		<description><![CDATA[實在沒那麼多的精神來防堵在「洗」的人，與其經常性的注意，到不如利用他大量的 IP 來看看是否有其附加價值，所以放上廣告看看會不會收斂些。 :)
當然啦，有可能廣告帳號，會因他使用一些方式而被關閉也說不定；總之，我能做的都做了，呵。
會洗的人，不外乎是我得罪過的人或利益衝突的人，並且除了睡覺外，都有時間待在網路上頭；這個範圍其實已經縮得很小了，因為一般人不會做出這麼奇怪的行為。
我想，就使用這冠冕堂皇的原因來作為我放廣告的理由吧(笑)。
最後，就由他吧，因為我不想浪費生命在這事上。 :)
]]></description>
			<content:encoded><![CDATA[<p>實在沒那麼多的精神來防堵在「洗」的人，與其經常性的注意，到不如利用他大量的 IP 來看看是否有其附加價值，所以放上廣告看看會不會收斂些。 :)</p>
<p>當然啦，有可能廣告帳號，會因他使用一些方式而被關閉也說不定；總之，我能做的都做了，呵。</p>
<p>會洗的人，不外乎是我得罪過的人或利益衝突的人，並且除了睡覺外，都有時間待在網路上頭；這個範圍其實已經縮得很小了，因為一般人不會做出這麼奇怪的行為。</p>
<p>我想，就使用這冠冕堂皇的原因來作為我放廣告的理由吧(笑)。</p>
<p>最後，就由他吧，因為我不想浪費生命在這事上。 :)</p>
]]></content:encoded>
			<wfw:commentRss>http://blog.beyes.tw/411/feed</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
	</channel>
</rss>
