我有很多asp:Label
个,我想改变每一个字体的大小。
我知道它们已转换为<span>
但我还有其他元素,其中的文本会转换为我不想要更改的范围。
那么如何才能将样式一次性应用于标签生成的跨度?
请不要告诉我,我必须通过每一个并直接申请cssClass。
答案 0 :(得分:1)
您可以为此定义皮肤。将Skin视为一组特定类型的所有控件常用的设置。皮肤本身并不存在,而是在主题内。这是关于如何从MSDN创建主题的walkthrough。我不认为在这里复制它是合理的。
但是要专注于您的特定用例,请继续并按照此演练创建一个主题,其中只有一个皮肤定义如下:
<asp:Label runat="server" CssClass="CommonCssClass" />
请注意,我们不使用SkinID,因此这将应用于所有Label
控件。
接下来转到页面并修改Page指令:
<%@ Page Theme="YourThemeName" %>
就是这样,这应该将主题中定义的皮肤应用于页面上的标签。
事实上,我会提出一个论点,即这是对服务器端控件进行类似更改的更好方法,然后尝试找出如何使用css选择器捕获生成的HTML。后者使您的代码依赖于生成的标记,这很危险,因为ASP.NET并不总是生成您期望的内容。例如,Label does not always render as span。