2013-07-18 51 views
3

我正在嘗試做一些簡單的事情。asp:按鈕CssClass屬性沒有設置CSS類到我指定的

我有一個按鈕。

<asp:Button ID="btnMyButton" runat="server" CssClass="MyButton" CausesValidation="False" Text="ClickMe" />

其風格被存儲在我所知道的是正在使用的樣式表,因爲從這個樣式表的頁面使用其他樣式元素。

這是我如何定義樣式:

.MyButton { 
    font-size: 80pt; 
    color: red; 
} 

我也嘗試了一些其他的方式來明確指向這個類(包括專門從含有元素引用它),但無濟於事:

input[type="submit"].MyButton { table.MyTable > tbody > tr > td > input.MyButton {

我可以看到谷歌Chrome的開發者工具,它甚至沒有覆蓋我設置的樣式,他們根本不存在。

當我查看頁面源代碼時,發現ASP.NET生成的輸入控件甚至沒有使用我的類(它使用了一種名爲submitBtn的函數,這是我自己沒有定義的任何地方)。如果我使用Google Chrome的開發人員工具將此課程更改爲我的課程,則我的樣式將按照我的預期應用,因此我知道它們是可用的。我只是不知道他們爲什麼不習慣開始。

我可以使用input[type="submit"] {對全局的所有按鈕進行樣式設置,但我試圖設計一個特定的樣式,而不使用內聯樣式定義。

請指教。

編輯:

我發現,如果我把我的CSS類在我的CSS文件submitBtn,它將應用我設置的樣式。然而,因爲所有的ASP.Net按鈕似乎都想使用這個css類,爲了爲每個類設置一個獨特的樣式,我們必須將它們包裝成跨度或者其他東西,並且專門設置按鈕樣式。

我仍然想知道爲什麼它不讓我設置用於ASP.Net按鈕的樣式類的名稱。

爲了更加清晰,我更新了問題標題。

+0

您是否在整個項目中搜索「submitBtn」?如果您在瀏覽器的按鈕標記中看到了這些內容,則可以添加它並覆蓋放入頁面的內容,無論是在服務器還是客戶端。 – Michael

+0

如果有,那麼當我使用Chrome瀏覽器的檢查元素時,是否會在元素選項卡的樣式部分下看不到此樣式類?當我查看元素時,我無法在樣式下使用submitBtn類查看它,只有'用戶代理樣式表',如果我理解它正確的是瀏覽器默認爲了呈現元素。 – Interminable

+0

雖然有必要將「submitBtn」添加到您的類屬性中。如果你創建一個空白的web應用程序,刪除一個新的asp:按鈕,將其CssClass設置爲「MyClass」,然後運行,你不會看到它被替換爲「submitBtn」。我想我的觀點是,不要繞着一個跨度繞過這個其他課程,也許應該找出將submitBtn課程放在第一位的原因。如果你不能,那麼是的,你可以包裝它,以便在你的CSS中定位不同的方式(甚至可以通過它的ID來定位)。 – Michael

回答

4

您可以將內聯樣式設置爲asp.net控件。

<asp:Button ID="btnMyButton" runat="server" CausesValidation="false" Text="ClickMe" 
      Style="font-size: 80pt; color: Red;" /> 

.MyButton 
{ 
    font-size:80pt; 
    color:Red; 
} 

<asp:Button ID="btnMyButton" runat="server" CausesValidation="false" Text="ClickMe" 
      CssClass="MyButton"/> 

工作對我罰款。

乾杯

+1

我想避免內聯樣式定義,我寧願他們都定義在CSS文件中。 至於你的第二個例子,這幾乎是我的,但它不適合我,我不知道爲什麼。 – Interminable

+0

將CSS添加到您的HTML文檔頭部標記之間以查看是否有效。 – shammelburg

+1

我剛試過這個,不幸的是它沒有效果。 – Interminable

1

也有同樣的問題。在我的情況下,我正在使用SharePoint,這個CSS覆蓋了我的按鈕樣式。嘗試:

.MyButton 
{ 
    font-size:80pt !important; 
    color:Red !important; 
} 

!重要的是使風格無法覆蓋...

+0

啊救了我。 Jquery將樣式應用到我的ASP中:按鈕甚至設置CssClass並沒有幫助重寫樣式..使用!重要標誌修復了問題,謝謝! – RyanG

1

使用<asp:LinkButton>代替

所以,你的按鈕將

<asp:LinkButton ID="btnMyButton" runat="server" CssClass="MyButton" CausesValidation="False" Text="ClickMe" /> 
2

我知道這是老問題,但如果有人將停留在同樣的問題時,你也應該檢查你的。皮膚文件。在我的情況有以下聲明:

<asp:LinkButton CssClass="linkbtn"></asp:LinkButton>

,這是迫使整個應用程序的所有LinkBut​​ton控件有沒有pissibility「linkbtn」類來覆蓋它。

+0

謝謝,這實際上幫助我確定了我的問題的真正原因。當事情獨立時,我不喜歡它 –