2010-09-24 28 views
3

如何在ascx控件中注册一个css代码块?如何从ascx控件注册一个css页面?

可我只是有

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

     </style> 
</head> 

港九ASCX页?我似乎没有工作?

+0

像你显示的那样在你的'head'标签中包含CSS规则确实可行,但我不确定你在“ascx页面的任何地方”是什么意思。 HTML页面只能有一个'head'标签,所以如果你在你的用户控件中插入这个代码片段,标记将不会有效 – wsanville 2010-09-24 22:51:13

回答

5

你有three options to insert CSS到页面:

  • 外部样式表
  • 内部样式表
  • 内嵌样式

style元素必须在head元素内。如果您试图对用户控件中包含的元素进行样式设置,则可以使用以下三个选项中的任何一个。作为一个说明(主要是我的意见)内联样式是99.9%的时间错误的决定。

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

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

8

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

如果您的页面有标记和runat="server"属性,则可以通过属性this.Page.Header以编程方式对其进行访问。

当我需要在开始<head>和关闭</head>标记之间添加内容时,我通常使用的方法就是这样一种方法。只需将url传递到您的样式表。

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 }); 
} 
0
<style type="text/css"> 
     @import url(user_stylesheet.css) 
     .customClass 
     { 
      background-color: Lime; 
     } 

    </style> 

在这种情况下,CSS,当用户控件呈现只会被渲染。