|
在VS2005中,LinkButton控件最終解釋為a標(biāo)簽。我們可以通過各種方法來對其添加樣式,主要的方法是為LinkButton控件設(shè)置一個背景圖片(background-image)。但這種方法有一個缺點, 就是同樣的樣式,如果按鈕的字?jǐn)?shù)不同,就需要很多張背景圖片。例如:
上述情況就需要四張不同的背景圖片。但在實際的應(yīng)用中,會需要相當(dāng)多的背景圖片,特別是做OA,CRM等系統(tǒng)應(yīng)用的時候,需要的背景圖片就更多了!于是,為了減輕工作量,提高工作效率,我們可以采用這種方式來實現(xiàn):在LinkButton控件外再套上一個span標(biāo)簽,并給這個span標(biāo)簽添加一個css類,用以綁定樣式! <span class="wrapBtn"><asp:LinkButton ID="LnkBtnConfirm" runat="server" Text="確定"></asp:LinkButton></span>
在瀏覽器中得到的html就是:<span class="wrapBtn"><a>確定</a></span>(已經(jīng)去掉了與樣式無關(guān)的代碼)。然后在相應(yīng)的css文件中寫如一下代碼:
.wrapBtn { display: -moz-inline-box; display: inline-block; background: transparent url(1.gif) 0 0 no-repeat; //1.gif 為背景圖片的路徑 height: 42px; //背景圖片的高度 padding: 0 0 0 20px; } .wrapBtn a { display: -moz-inline-box; display: inline-block; height: 42px; background: transparent url(1.gif) right 0 no-repeat; padding: 12px 20px 0 0; text-decoration: none; color: #FFFFFF; font-weight: bolder; } .wrapBtn a:hover { text-decoration: underline; color: #FF9900; } 其中,display: -moz-inline-box; 是兼容firefox的css hack,它的位置不能與display: inline-block;顛倒!你也可以采用ie條件注釋(Conditional Comments)的方法,將這段代碼分離開,以增強(qiáng)代碼的可維護(hù)性和可讀性。1.gif為背景圖片,可以把它做得很寬,以適應(yīng)以后的需求變化。這種方法只需要一張背景圖片就可以滿足同一樣式所有按鈕的要求,一個字“爽”!
這樣做還有一個好處就是當(dāng)你要對系統(tǒng)進(jìn)行換膚的時候,可以極大的較少工作量!(以前改了好幾個OA的UI,單單這樣的按鈕一次就要改近200個,人都要哭了!還有每個重命名,對號入座!還有一次做個網(wǎng)站,要求有換膚的功能,又是一個痛苦洗禮!早點用這種方法就輕松多了?。?/div>
這種方法也有不足的地方:首先就是需要多添加一個span標(biāo)簽,對于程序員來說,是額外的負(fù)擔(dān),畢竟在VS2005里面,沒有現(xiàn)成的span標(biāo)簽控件;雖然可以添加一個label控件,但還是需要切換到代碼試圖中進(jìn)行調(diào)整,不太方便。本人建議直接在代碼試圖中添加span標(biāo)簽。其次就是按鈕的左側(cè)會有一些盲區(qū)(鼠標(biāo)移動到這些部分,按鈕沒有被選中),這是因為span標(biāo)簽設(shè)置了padding:0 0 0 20px;的原因。以后我會給去一個比較完滿的解決方案,來處理這兩個問題。
本文來自CSDN博客,轉(zhuǎn)載請標(biāo)明出處:http://blog.csdn.net/moscodekidy/archive/2008/02/16/2099961.aspx |
|
|
來自: 悟靜 > 《.net和asp.net》