样式化服务器控件生成的HTML

时间:2014-09-17 14:28:28

标签: c# html css .net

刚开始在.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类然后在单独的样式表中进行样式化的唯一方法?

提前致谢。

1 个答案:

答案 0 :(得分:2)

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

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

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

  

你能否扩展为什么内联样式不好?

浏览器大战:新希望

在遥远的星系中,在20世纪远在地球的AC中,发生了浏览器大战。在一些战斗之后,彼此想要统治 Web ,软件供应商得出了一个很好的结论:我们需要标准化Web开发

blah,blah,blah,blah

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

总结:HTML中的编码样式混合了两个不同的概念。文档结构和样式,这就是使用style属性是不良做法的原因。

由于与旧时代的向后兼容性,它仍然存在。 (90年代)网页。

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