我有很多asp:Label
s,我想改變每一個字體的大小。更改所有asp的大小:標籤文本
我知道他們轉換爲<span>
但我有其他元素與文本轉換爲跨度,我不想要更改。
那麼我怎樣才能將樣式應用到只有標籤生成的跨度?
請不要告訴我我將不得不通過每一個直接應用cssClass。
我有很多asp:Label
s,我想改變每一個字體的大小。更改所有asp的大小:標籤文本
我知道他們轉換爲<span>
但我有其他元素與文本轉換爲跨度,我不想要更改。
那麼我怎樣才能將樣式應用到只有標籤生成的跨度?
請不要告訴我我將不得不通過每一個直接應用cssClass。
您可以爲其定義皮膚。將皮膚看作是一組通用於特定類型的所有控件的設置。皮膚不是單獨存在,而是存在於一個主題中。以下是關於如何從MSDN創建主題的walkthrough。我認爲在這裏複製它是不合理的。
而是把重點放在你的具體使用情況,繼續遵循此演練,並創建一個主題,只有像這樣定義的單個皮膚:
<asp:Label runat="server" CssClass="CommonCssClass" />
注意我們不使用SkinID,所以這將是適用於所有Label
控件。
下一步進入到頁面,修改頁面指令:
<%@ Page Theme="YourThemeName" %>
就是這樣,這應該適用於主題定義皮膚頁面上的標籤。
事實上,我會提出一個觀點,認爲這是對服務器端控件進行類似更改的更好方法,然後試圖找出如何使用css選擇器捕獲生成的HTML。後者讓你的代碼依賴於生成的標記,這很危險,因爲ASP.NET並不總是生成你期望的。例如,Label does not always render as span。
謝謝,這有幫助。 也可以有選擇地使用它嗎?只有在'
@Nol,no afaik。頁面可能是您可以應用的最窄範圍。或者你總是可以使用SkinID,但這與設置CssClass沒有什麼不同。我看到的最後一個選項是在後面的代碼中分配皮膚,您可以更好地區分控件。但請記住,這隻能在PreInit階段完成,而不能晚於此階段 – Andrei