【问题标题】:css style sheet from content page来自内容页面的 CSS 样式表
【发布时间】:2011-09-15 13:32:27
【问题描述】:

我有一个内容页面,其中包含指向样式表的链接,我希望该样式表特定于该页面,即我希望设计在该页面加载并在 contentplaceholder 中占据位置时特定于该页面主页。

在我的内容页面中:

  <asp:Content ID="Content1" ContentPlaceHolderID="head" runat="server">  
      <link href="~/Styles/StyleSheet1.css" rel="stylesheet" type="text/css" />
  </asp:Content>

在我的主页中:

   <asp:ContentPlaceHolder ID="head" runat="server">       
   </asp:ContentPlaceHolder>  

我的样式表 ~/Styles/StyleSheet1.css 仅作为示例,我会将此 id 提供给我的内容页面中的某个表格。

       #defualt_tbl
       {
          background-color:Gray;
       }

       <table id="defualt_tbl">

表格没有变灰,当我单击母版页中的 viewsource 时,链接出现在 head 部分中。

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

【问题讨论】:

  • 你看过生成的源码了吗?我的意思是,如果您的表有类似 runat="server" 的东西,那么该 ID 可能与您预期的完全不同......首先检查一下。
  • 这就是样式表中的全部内容吗?
  • 不,这还不是全部......这只是一个例子。

标签: css master-pages


【解决方案1】:

您只能在服务器控件中使用 ~ 根说明符,浏览器不理解该 URL,并且即使可以,也不知道您的应用程序根在哪里。

runat="server" 放在link 标记中,或使用相对于站点根目录的URL:

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

【讨论】:

    【解决方案2】:

    我不确定您是否可以使用 tilda ~ 作为链接中的路径。我认为 tilda(~) 是一个 .net 快捷方式,并且由于您只是呈现 html,因此浏览器将不知道在哪里查找。

    【讨论】:

      【解决方案3】:

      找到了!

      但我相信你的回答也有效。

        <asp:Content ID="Content1" ContentPlaceHolderID="head" runat="server">
           <link href='<%= ResolveClientUrl("~/Styles/StyleSheet1.css") %>' rel="stylesheet"    type="text/css" />
        </asp:Content>
      

      【讨论】:

        猜你喜欢
        • 2022-06-17
        • 2010-12-30
        • 2015-02-04
        • 1970-01-01
        • 2013-02-17
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        • 2016-09-01
        相关资源
        最近更新 更多