如何从ascx控件注册css页面?

Mat*_*att 3 css asp.net ascx

如何在ascx控件中注册css代码块?

我可以吗?

<head id="head" runat="server">
    <style type="text/css">
        .customClass
        {
        background-color: Lime;
        }

        </style>
</head>
Run Code Online (Sandbox Code Playgroud)

在ascx页面的任何地方?我似乎没有工作?

wsa*_*lle 8

必须在headHTML 的部分中定义样式.这适用于注册外部CSS文件的style标签和link标签.

如果您的页面包含head具有该runat="server"属性的标记,则可以通过该属性以编程方式访问它this.Page.Header.

当我需要在开始<head>和结束</head>标记之间添加内容时,我通常使用的方法是这样的方法.只需将网址传递到您的样式表即可.

public void AddStylesheet(string url)
{
    string link = String.Format("<link rel=\"stylesheet\" type=\"text/css\" href=\"{0}\" />", url);
    this.Page.Header.Controls.Add(new LiteralControl { Text = link });
}
Run Code Online (Sandbox Code Playgroud)


ahs*_*ele 5

您有三个选项可以将CSS插入页面:

  • 外部样式表
  • 内部样式表
  • 内联风格

style元件必须在内被封闭head元件.如果您尝试设置用户控件中包含的元素的样式,则可以使用这三个选项中的任何一个.作为一个注释(主要是我的意见)内联样式是99.9%的时间错误的决定.

一种选择是ContentPlaceHolder在head部分内部显示Site.Master中的a .然后ContentPlaceHolder在使用用户控件的页面上使用它,您将能够放置一个link元素,为用户控件指定样式表.

另一种选择是简单地将用户控件的样式规则放在用于整个站点的样式表中.