<?xml version="1.0" encoding="UTF-8"?>
<!-- generator="ARTICLE @ XOOPS powered by FeedCreator" -->
<rss version="0.91">
    <channel>
        <title>睡蓮‧池水間 :: 文章</title>
        <description><![CDATA[文章XML]]></description>
        <link>http://waterlily-lsl.com/modules/article/view.article.php/170/c2</link>
        <lastBuildDate>Sat, 11 Feb 2012 00:01:36 +0200</lastBuildDate>
        <generator>ARTICLE @ XOOPS powered by FeedCreator</generator>
        <image>
            <url>http://waterlily-lsl.com/modules/article/images/logo.png</url>
            <title>睡蓮‧池水間 :: 文章</title>
            <link>http://waterlily-lsl.com/modules/article/</link>
            <width>92</width>
            <height>52</height>
            <description>文章XML</description>
        </image>
        <language>zh-TW</language>
        <managingEditor>waterlily at waterlily-lsl dot com</managingEditor>
        <webMaster>waterlily at waterlily-lsl dot com</webMaster>
        <category>文章</category>
        <item>
            <title>提升網站效能的 CSS Sprites</title>
            <link>http://waterlily-lsl.com/modules/article/view.article.php/170/c2</link>
            <description><![CDATA[類別: 語言集<br />來源: (池水間)近來在為池水間進行網站優化，將XHTML和CSS代碼改良，其中CSS就首次使用了CSS Sprites技術，以提升網站效能。<br /><br />什麼是CSS Sprites？就是將多個圖片匯集到一個大圖片上，然後在CSS裡將每個使用不同背景圖路徑全部劃一改為集成圖片路徑，並給每個背景圖定位。<br /><br />例如下面的無序列表，每一個 li 標籤分別用五個不同背景圖：<br /><div class="xoopsCode"><p class="cTitle"><img class="icon-l" src="http://waterlily-lsl.com/themes/waterlilyLSL-GW/img/code-icon1.gif" alt=""/><img class="icon-r" src="http://waterlily-lsl.com/themes/waterlilyLSL-GW/img/code-icon2.gif" alt=""/></p><pre>
&lt;ul&gt;
&lt;li class=&quot;image1&quot;&gt; image1 背景 &lt;/li&gt;
&lt;li class=&quot;image2&quot;&gt; image2 背景 &lt;/li&gt;
&lt;li class=&quot;image3&quot;&gt; image3 背景 &lt;/li&gt;
&lt;li class=&quot;image4&quot;&gt; image4 背景 &lt;/li&gt;
&lt;li class=&quot;image5&quot;&gt; image5 背景 &lt;/li&gt;
&lt;/ul&gt;
</pre></div><br />在CSS裡給每個 li 設定不同背景圖片路徑：<br /><div class="xoopsCode"><p class="cTitle"><img class="icon-l" src="http://waterlily-lsl.com/themes/waterlilyLSL-GW/img/code-icon1.gif" alt=""/><img class="icon-r" src="http://waterlily-lsl.com/themes/waterlilyLSL-GW/img/code-icon2.gif" alt=""/></p><pre>
.images1 {background: url(image1.png) no-repeat;}
.images2 {background: url(image2.png) no-repeat;}
.images3 {background: url(image3.png) no-repeat;}
.images4 {background: url(image4.png) no-repeat;}
.images5 {background: url(image5.png) no-repeat;}
</pre></div><br />上面就用了五個不同的路徑，如將五個圖片匯集到一個圖片，路徑就只要劃一用同一個便可以了。這樣一來當網頁載入圖片時只需一次載入集成圖片，然後依據先前背景圖的定位而顯示出不同背景圖。<br /><br /><br /><strong class="A_strong">圖片匯集</strong><br /><br /><div style="background:url(/uploads/article/images/CSS_Sprites_3.png) no-repeat 50% 0;height:450px;width:900px"></div><br /><br /><strong class="A_strong">定位</strong><br /><br />當匯集到一個圖片之後，如何為每個 li 標籤分別指定 <span style="color: #00ff00;">5to1_image.png</span> 裡面的不同背景圖呢？<br /><br />下圖的每一個紅框所示為每個 li 要用的背景：<br /><div style="background:url(/uploads/article/images/CSS_Sprites_3.png) no-repeat 50% -470px;height:300px;width:900px"></div><br />在為每個不同背景圖定位之前，須先給每個 li 標籤指定寬和高也就是100 px *  30px，如此定位才會準確。<br /><br />上面的image1 ，其灰色背景位處在 <span style="color: #00ff00;">5to1_image.png</span> 裡的最上面，也就是最容易定位的地方：<br /><div class="xoopsCode"><p class="cTitle"><img class="icon-l" src="http://waterlily-lsl.com/themes/waterlilyLSL-GW/img/code-icon1.gif" alt=""/><img class="icon-r" src="http://waterlily-lsl.com/themes/waterlilyLSL-GW/img/code-icon2.gif" alt=""/></p><pre>
.images1 {background: url(5to1_image.png) no-repeat <span style="color: #ff0000;">0</span> <span style="color: #0000ff;">0</span>;}
</pre></div>上面代碼中紅色的0為x，藍色的0為y；x為水平位置，y為垂直位置。<br /><br />由於背景圖定位的預設值皆為0的關係，上面的代碼可以省略成如下：<br /><div class="xoopsCode"><p class="cTitle"><img class="icon-l" src="http://waterlily-lsl.com/themes/waterlilyLSL-GW/img/code-icon1.gif" alt=""/><img class="icon-r" src="http://waterlily-lsl.com/themes/waterlilyLSL-GW/img/code-icon2.gif" alt=""/></p><pre>
.images1 {background: url(5to1_image.png) no-repeat;}
</pre></div><br />好了，接下來給 image2 定位，其藍色背景位處在灰色的下面，見下圖：<br /><br /><div style="background:url(/uploads/article/images/CSS_Sprites_3.png) no-repeat 70% -790px;height:250px;width:900px"></div><br />將 image2 的藍背景向上提升一格( 30px )至紅框位置，而水平位置維持不變：<br /><div class="xoopsCode"><p class="cTitle"><img class="icon-l" src="http://waterlily-lsl.com/themes/waterlilyLSL-GW/img/code-icon1.gif" alt=""/><img class="icon-r" src="http://waterlily-lsl.com/themes/waterlilyLSL-GW/img/code-icon2.gif" alt=""/></p><pre>
.images2 {background: url(5to1_image.png) no-repeat 0 <span style="color: #ffac00;">-30px</span>;}
</pre></div><br />接著將位處在image 2 下面的 image 3 ，向上提升兩格至紅框，兩格就是60px。其他的image 4 和 image 5 則餘類推：<br /><div class="xoopsCode"><p class="cTitle"><img class="icon-l" src="http://waterlily-lsl.com/themes/waterlilyLSL-GW/img/code-icon1.gif" alt=""/><img class="icon-r" src="http://waterlily-lsl.com/themes/waterlilyLSL-GW/img/code-icon2.gif" alt=""/></p><pre>
.images3 {background: url(5to1_image.png) no-repeat 0 <span style="color: #ffac00;">-60px</span>;}
.images4 {background: url(5to1_image.png) no-repeat 0 <span style="color: #ffac00;">-90px</span>;}
.images5 {background: url(5to1_image.png) no-repeat 0 <span style="color: #ffac00;">-120px</span>;}
</pre></div><br />CSS Sprites 就是這樣用法，除了上面的多圖匯集成一圖之外，CSS Sprites亦可取代以往在photoshop繪製好設計圖後需作切圖的舊模式，利用CSS Sprites技術，便可不需切圖而直接使用了。<br />]]></description>
            <author>睡蓮</author>
            <pubDate>Sat, 04 Apr 2009 23:20:00 +0200</pubDate>
        </item>
    </channel>
</rss>

