母版页中的 ASP.NET CSS 文件

Posted

技术标签:

【中文标题】母版页中的 ASP.NET CSS 文件【英文标题】:ASP.NET CSS file in master page 【发布时间】:2011-02-12 01:29:48 【问题描述】:

在我的应用程序中,我遇到了下一个问题。我创建了母版页和一些内容页,其中一些位于嵌套文件夹中。在母版页中,我添加了指向 .css 文件的链接

<link href="default.css" rel="stylesheet" type="text/css" />

但页面位于嵌套文件夹中,无法使用此 .css 文件。我怎样才能解决这个问题?我想为所有页面创建一个 .css 文件(:

谢谢!

【问题讨论】:

【参考方案1】:
<link href="~/default.css" rel="stylesheet" type="text/css" />

【讨论】:

它不起作用。也许指向 css 的链接不是服务器端的内容,并且此链接在客户端无法使用.. 它不起作用。也许指向 css 的链接不是服务器端的内容,并且此链接在客户端无法使用.. 对不起,你是对的!如果您将“runat=server”添加到您的正文标签,它将起作用!所以,你的答案是最正确的!谢谢! 即使使用 'runat="server"' 这对我也不起作用。我还需要在 href 中添加 ResolveURL。所以,这里是结果&lt;link id="Link1" href='&lt;%= ResolveUrl("~/css/site.css") %&gt;' rel="stylesheet" media="screen" type="text/css"/&gt; 对于一个非常好的和简单的例子,向下滚动到 wfz 的解决方案。【参考方案2】:

可以通过在母版页中添加下一个代码来解决此问题

<style type="text/css" runat="server">
    @import '<%= ResolveUrl("~/default.css")%>';
</style>

但是 VS 的设计者无法处理这个,你无法在其中查看你的样式。

【讨论】:

这对我很有用(VS2013)......在尝试了上面那些不起作用之后。还具有非常简单的优点!【参考方案3】:

如果您使用网站下的网站,请更改子文件夹母版页CSS链接

<link href="Styles/Site.css" rel="stylesheet" type="text/css" />

用下面的改变

<link href="../Styles/Site.css" rel="stylesheet" type="text/css" />

【讨论】:

这是最好的解决方案:只需使用与母版页位置相对的路径链接到样式表。 ASP.NET 将在生成 html 时修复路径。 (可能需要将 runat="server" 添加到母版页的 head 元素。) 不幸的是,这似乎不适用于 javascript 和图像资源的 src 属性。【参考方案4】:

css 不应与母版页相关,而应与使用母版页的 Page 实例的位置相关。在大多数情况下,这将是同一件事,但我总是会尝试使用完全限定路径或站点相对路径

完全限定路径

<link href="http://some.site.com/mysite/styles/default.css" rel="stylesheet" type="text/css" /> 

或相对路径(请注意,如果您的版本只能托管一个站点但可以托管许多应用程序,例如 WinXP,这可能不起作用)

<link href="/default.css" rel="stylesheet" type="text/css" /> 

win xp 相对路径

<link href="/path/to/application/default.css" rel="stylesheet" type="text/css" />

【讨论】:

【参考方案5】:

您定义样式表的方式意味着:样式表与使用它的页面位于同一文件夹中

如果您想为所有页面使用一个样式表,您应该放在一个位置(我更喜欢应用程序根目录中的/assets/css 文件夹)并使用此文件夹定义路径:

<link href="/assets/css/default.css" rel="stylesheet" type="text/css" />

另一种存档方式是使用Themes,在这种情况下,样式将自动添加。

【讨论】:

以上是关于母版页中的 ASP.NET CSS 文件的主要内容,如果未能解决你的问题,请参考以下文章

在 asp.net 母版页中更改页脚颜色

asp.net 中母版页、用户控件中属性的调用、赋值方法求解。

从 asp.net 中的 contentpage 将 css 类分配给母版页控件

用户登录时在母版页中隐藏登录面板。(ASP.net)

Jquery Mobile:管理 ASP.NET 母版页中的数据角色

asp.net 如何从具有嵌套母版页的内容页更改父母版页中的控件