C# 设置服务器控件生成的html样式

C# 设置服务器控件生成的html样式,c#,html,css,.net,C#,Html,Css,.net,刚刚开始在.NET中进行web开发。如果这个问题过于简单,我深表歉意。如果我有一个服务器控件,可能: <asp:LoginView ID="HeadLoginView" runat="server" EnableViewState="false"> <AnonymousTemplate> <asp:LinkButton ID="header_su_btn" runat="serv

刚刚开始在.NET中进行web开发。如果这个问题过于简单,我深表歉意。如果我有一个服务器控件,可能:

<asp:LoginView ID="HeadLoginView" runat="server" EnableViewState="false">
                    <AnonymousTemplate>
                        <asp:LinkButton ID="header_su_btn" runat="server" CssClass="su_btn">Sign Up</asp:LinkButton><br />
                        <a href="~/Account/Login.aspx" ID="HeadLoginStatus" runat="server">Log In</a>
                    </AnonymousTemplate>
                    <LoggedInTemplate>
                        Welcome <span class="bold"><asp:LoginName ID="HeadLoginName" runat="server" /></span>!
                        [ <asp:LoginStatus ID="HeadLoginStatus" runat="server" LogoutAction="Redirect" LogoutText="Log Out" LogoutPageUrl="~/"/> ]
                    </LoggedInTemplate>
                </asp:LoginView>

欢迎
[  ]
是否有任何方法可以使用内联样式设置服务器控件的样式,或者是指定生成元素的css类,然后在单独的样式表中进行样式设置的唯一方法


提前感谢。

这将取决于整个控件的顶级(超类)是什么。如果是
WebControl
,您将被迫在某个文件中定义CSS样式表。另一方面,如果它是
HtmlGenericControl
,则可以使用内联CSS样式添加
style
属性:

<div style="color: #f0f0f0" runat="server" />

无论如何,如果您想在现代Web开发中使用
style
属性为元素设置样式,我不确定您是否走上了正确的道路。你应该尽快避免这种情况,把工作做好。一个单独的文件是值得努力的

你能解释一下为什么内联样式不好吗

浏览器战争:新希望 在一个遥远的星系里,在20世纪,在遥远的地球行星上,发生了浏览器战争。经过一番争斗之后,软件厂商们达成了一个伟大的结论:我们需要使网络开发标准化

废话,废话,废话,废话

[…]因此,他们试图修复Web开发,HTML将是文档定义/布局,CSS将是样式,JavaScript将是代码

摘要:HTML中的编码风格混合了两种不同的概念。文档结构和样式,这就是为什么使用
style
属性是一种不好的做法

它仍然存在,因为它向后兼容旧时代(90年代)的网页


TL;DR:因为分离关注点是个好主意。

1)您可以向这些控件添加一个类,并从普通样式表中设置它们的样式;2) 如果您使用的是.net 4,则可以对控件使用clientMode=“static”,并使用ID而不是类应用点1。让样式内联(从不)好是不好的,谢谢。你能解释一下为什么内联样式不好吗?@bob你喜欢我的解释吗?;)