2009-12-23 25 views
1

因此,看起來如果我在.cs代碼中向LinkBut​​ton添加背景顏色等樣式,它會覆蓋任何適用於它的CSS。向LinkBut​​ton添加樣式而不覆蓋css

有什麼方法可以添加樣式而不是在我的代碼中將其替換掉嗎?謝謝! 我使用鏈接按鈕作爲菜單,因此活動linkBut​​ton應具有不同的背景色。 所以我的解決辦法是,當用戶點擊我的事件處理程序的鏈接按鈕,我做這樣的事情:

lnkView.BackColor = System.Drawing.Color.FromName("#369"); 

但後來我懸停的風格,我有我的CSS將不再起作用:

.navlist a:hover 
{ 
    color: #fff; 
    background-color: #369; 
    text-decoration: none; 
} 

在我的aspx:

<ul class="navlist"> 
     <li><asp:LinkButton ID="lnkView" runat="server">view</asp:LinkButton></li> 
     <li><asp:LinkButton ID="lnkCreateNew" runat="server">create new</asp:LinkButton></li> 
    </ul> 

回答

2

編輯:你的問題不清楚,但你似乎是誤解CSS。將background-color添加到style屬性不會導致它完全忽略任何CSS規則。相反,它將覆蓋background-color屬性的任何CSS規則,但不會影響任何其他規則。

如果你不想覆蓋從CSS規則background-color特性,!important標誌添加到CSS規則:hover,像這樣:

background-color: #369 !important; 

而且,改變顏色,這樣的變化將是明智的。

或者,您可以使用背景色爲.navlist a:link .Active添加新的CSS規則,然後在代碼中添加Active類。 (lnkView.CssClass += "Active"

順便說一下,您不應該致電Color.FromName,而應該寫Color.FromArgb(0x33, 0x66, 0x99)

1

任何內嵌樣式將始終從文件的頭或外部CSS文件覆蓋任何繼承的樣式。唯一的其他選擇是添加一個JavaScript函數,該函數在DOM ready或Window ready事件之後覆蓋對象的樣式。

0

如果我明白你想要的東西是否正確,你想根據linkbutton是否被覆蓋而應用不同的樣式?因此,有你有風格,但也有:

.navlist a:link 
    { 
     color: #fff; 
     background-color: #123; 
     text-decoration: none; 
    } 

,如果你想要第三個顏色,被訪問的鏈接後,確定與a:visited.是你以後在做什麼?

1

不確定您在這裏使用,因爲您的問題不是很清楚。但是,這也是一種選擇。

有兩個CSS樣式:

.navlistafteranaction a:link 
    { 
     color: #fff; 
     background-color: #123; 
     text-decoration: none; 
    } 

.navlist a:link 
    { 
     color: #fff; 
     background-color: #123; 
     text-decoration: none; 
    } 

然後在後面的代碼只是切換您的CssClass:

lnkbtn.CssClass = "navlistafteranaction"; 

這將改變類有你事後想什麼風格。