在VS2005中,LinkButton控件最終解釋為a標(biāo)簽。我們可以通過各種方法來對其添加樣式,主要的方法是為LinkButton控件設(shè)置一個背景圖片(background-image)。但這種方法有一個缺點(diǎn), 就是同樣的樣式,如果按鈕的字?jǐn)?shù)不同,就需要很多張背景圖片。例如:
上述情況就需要四張不同的背景圖片。但在實(shí)際的應(yīng)用中,會需要相當(dāng)多的背景圖片,特別是做OA,CRM等系統(tǒng)應(yīng)用的時候,需要的背景圖片就更多了!于是,為了減輕工作量,提高工作效率,我們可以采用這種方式來實(shí)現(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)站,要求有換膚的功能,又是一個痛苦洗禮!早點(diǎn)用這種方法就輕松多了?。?/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)移動到這些部分,按鈕沒有被選中),這是因?yàn)閟pan標(biāo)簽設(shè)置了padding:0 0 0 20px;的原因。以后我會給去一個比較完滿的解決方案,來處理這兩個問題。
本站僅提供存儲服務(wù),所有內(nèi)容均由用戶發(fā)布,如發(fā)現(xiàn)有害或侵權(quán)內(nèi)容,請
點(diǎn)擊舉報。