【问题标题】:Apply CSS to ASP.Net webpage which includes the default master page将 CSS 应用于包含默认母版页的 ASP.Net 网页
【发布时间】:2013-03-25 03:06:56
【问题描述】:

在创建了一个新的简单 ASP.Net Web 应用程序,在 Default.aspx 文件中添加了新的 div 如下

<div id="TestDiv"> Hi, This is CSS test. </div>

对于上面的 div 的样式,在 Site.css 文件的 css 下面添加

#TestDiv{ color:Red; }

如果我在Design视图中查看Default.aspx页面,发现上面的文字颜色变成了红色。 但是当我运行这个应用程序并在浏览器中检查时,发现颜色没有改变,并且没有应用 css。 我想使用在母版页中声明的相同 Site.css 来应用于上述 div,并且我不想在 Default.aspx 页面中显式声明 css 样式。 你能帮我看看我怎样才能让它工作。

应要求共享 Site.css 内容

/* DEFAULTS
----------------------------------------------------------*/

body
{
    background: #b6b7bc;
    font-size: .80em;
    font-family: "Helvetica Neue" , "Lucida Grande" , "Segoe UI" , Arial, Helvetica, Verdana, sans-serif;
    margin: 0px;
    padding: 0px;
    color: #696969;
}

a:link, a:visited
{
    color: #034af3;
}

a:hover
{
    color: #1d60ff;
    text-decoration: none;
}

a:active
{
    color: #034af3;
}

p
{
    margin-bottom: 10px;
    line-height: 1.6em;
}


/* HEADINGS   
----------------------------------------------------------*/

h1, h2, h3, h4, h5, h6
{
    font-size: 1.5em;
    color: #666666;
    font-variant: small-caps;
    text-transform: none;
    font-weight: 200;
    margin-bottom: 0px;
}

h1
{
    font-size: 1.6em;
    padding-bottom: 0px;
    margin-bottom: 0px;
}

h2
{
    font-size: 1.5em;
    font-weight: 600;
}

h3
{
    font-size: 1.2em;
}

h4
{
    font-size: 1.1em;
}

h5, h6
{
    font-size: 1em;
}

/* this rule styles <h1> and <h2> tags that are the 
first child of the left and right table columns */
.rightColumn > h1, .rightColumn > h2, .leftColumn > h1, .leftColumn > h2
{
    margin-top: 0px;
}


/* PRIMARY LAYOUT ELEMENTS   
----------------------------------------------------------*/

.page
{
    width: 960px;
    background-color: #fff;
    margin: 20px auto 0px auto;
    border: 1px solid #496077;
}

.header
{
    position: relative;
    margin: 0px;
    padding: 0px;
    background: #4b6c9e;
    width: 100%;
}

.header h1
{
    font-weight: 700;
    margin: 0px;
    padding: 0px 0px 0px 20px;
    color: #f9f9f9;
    border: none;
    line-height: 2em;
    font-size: 2em;
}

.main
{
    padding: 0px 12px;
    margin: 12px 8px 8px 8px;
    min-height: 420px;
}

.leftCol
{
    padding: 6px 0px;
    margin: 12px 8px 8px 8px;
    width: 200px;
    min-height: 200px;
}

.footer
{
    color: #4e5766;
    padding: 8px 0px 0px 0px;
    margin: 0px auto;
    text-align: center;
    line-height: normal;
}


/* TAB MENU   
----------------------------------------------------------*/

div.hideSkiplink
{
    background-color: #3a4f63;
    width: 100%;
}

div.menu
{
    padding: 4px 0px 4px 8px;
}

div.menu ul
{
    list-style: none;
    margin: 0px;
    padding: 0px;
    width: auto;
}

div.menu ul li a, div.menu ul li a:visited
{
    background-color: #465c71;
    border: 1px #4e667d solid;
    color: #dde4ec;
    display: block;
    line-height: 1.35em;
    padding: 4px 20px;
    text-decoration: none;
    white-space: nowrap;
}

div.menu ul li a:hover
{
    background-color: #bfcbd6;
    color: #465c71;
    text-decoration: none;
}

div.menu ul li a:active
{
    background-color: #465c71;
    color: #cfdbe6;
    text-decoration: none;
}

/* FORM ELEMENTS   
----------------------------------------------------------*/

fieldset
{
    margin: 1em 0px;
    padding: 1em;
    border: 1px solid #ccc;
}

fieldset p
{
    margin: 2px 12px 10px 10px;
}

fieldset.login label, fieldset.register label, fieldset.changePassword label
{
    display: block;
}

fieldset label.inline
{
    display: inline;
}

legend
{
    font-size: 1.1em;
    font-weight: 600;
    padding: 2px 4px 8px 4px;
}

input.textEntry
{
    width: 320px;
    border: 1px solid #ccc;
}

input.passwordEntry
{
    width: 320px;
    border: 1px solid #ccc;
}

div.accountInfo
{
    width: 42%;
}

/* MISC  
----------------------------------------------------------*/

.clear
{
    clear: both;
}

.title
{
    display: block;
    float: left;
    text-align: left;
    width: auto;
}

.loginDisplay
{
    font-size: 1.1em;
    display: block;
    text-align: right;
    padding: 10px;
    color: White;
}

.loginDisplay a:link
{
    color: white;
}

.loginDisplay a:visited
{
    color: white;
}

.loginDisplay a:hover
{
    color: white;
}

.failureNotification
{
    font-size: 1.2em;
    color: Red;
}

.bold
{
    font-weight: bold;
}

.submitButton
{
    text-align: right;
    padding-right: 10px;
}
#TestDiv
{
    color:Red;
}

【问题讨论】:

    标签: css master-pages


    【解决方案1】:

    它不起作用的原因之一是 Directory Structure ,这使得 CSS 无法从您的 Default.aspx 访问。否则没有理由它不会工作。您可以通过按 F12 使用 IE 开发人员工具并选择 div 并查看您的 site.css 是否已应用。您还可以查看视图源并在浏览器中复制 CSS 路径以查看它是否呈现或您正在获取 404

    【讨论】:

    • 这里我没有创建任何新页面来考虑目录结构,使用自动生成的 Default.aspx 页面,该页面与 Site.css 样式表一起使用 - 我只是添加了一个新的 div 并应用样式在同一个 Site.css 样式表中。在浏览器中,我观察到样式是从 Site.css 样式表的主体继承的。但是在这里我只想使用 Site.css 样式表,请建议我如何使它工作?
    • 你能分享你的site.css内容吗
    • 看到我没有看到你在这里做错了什么,确保 css 文件没有被缓存,只需检查文件名,你能用 F12 告诉你什么 css 类名应用于您的新 DIV。添加屏幕截图会很棒
    • 是的,我观察到 css 文件被缓存了一个,因为 css 没有应用于 div。在浏览器中,我选择了所有复选框并删除了“删除浏览历史记录”窗口中的所有内容,现在 css 正在正确应用。谢谢你。但是每次我无法正确删除浏览器中的缓存时,我需要如何在代码中修复这个问题,以便 css 文件不会被缓存并且 css 正确应用。
    • 可以使用style.css?v=01之类的版本号。由于查询字符串,您将更改为 style.css?v=02 它将再次由浏览器加载。或者您可以在文件中附加文件修改的时间戳,因此每当您更改 CSS 文件时,它都会创建新名称 style0110111.css
    【解决方案2】:

    确保您制作了一个包含当前 css 文件位置的标签,并且您的链接标签必须在标题上,但 div 部分必须在正文上。

    【讨论】:

    • 在 Masterpage 中声明如下
    • 而div部分仅在Deafult.aspx页面正文标签中
    【解决方案3】:

    这个问题有几个原因。最好使用浏览器的开发工具来查看前端更改实际影响了什么。 Chrome 提供了绝对最佳的调试套件...只需右键单击您的页面并在您的 div 上选择“检查元素”。

    至于这个问题的具体情况:

    • 检查您是否专门引用了 Site.css。
    • 确保没有其他父 CSS 定义覆盖您的定义
    • 如果存在冲突(例如:颜色的“div”定义),请确保您的 css ID 定义位于页面流的后面

    备选方案:

    • 使用脚本闭包按页面定义 CSS。
    • 对特定元素使用内联样式。

    对评论的回应

    嗯,每个浏览器都有分配给大多数元素的默认规则。如果您发现从主体继承的样式,很可能是由于 css“重置”样式表和/或架构,其中主体被赋予了更合理的默认值。我怀疑你甚至会在 ASP.NET 应用程序中找到它。

    我建议创建您自己的样式表并在您的 default.aspx 页面中引用它。这实际上并不重要(只要您在生成样式表之后引用您的样式表),但它将所有内容分开。大多数情况下,您不需要更改生成的 CSS。

    【讨论】:

    • 这里我没有创建任何新页面来考虑目录结构,使用自动生成的 Default.aspx 页面,该页面与 Site.css 样式表一起使用 - 我只是添加了一个新的 div 并应用样式在同一个 Site.css 样式表中。在浏览器中,我观察到样式是从 Site.css 样式表的主体继承的。但是在这里我只想使用 Site.css 样式表,请建议我如何使它工作?
    【解决方案4】:

    为你准备了 2 个答案:

    1. 告诉我你的 deafult.aspx 文件在哪里?在诸如site/asp/deafult.aspx之类的文件夹中,并且您的样式在site/style/site.css中,如果确实如此,则添加链接标签&lt;link href="../Style/Site.css" rel="stylesheet" type="text/css" /&gt;

    2. 如果您的网站在 Site/deafult.aspx 中,而 css 在 Site/Styles/Site.css 中,那么请确保大小词不同。

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 2011-07-08
      • 2010-12-30
      • 1970-01-01
      • 2011-04-30
      • 1970-01-01
      • 2019-12-01
      • 1970-01-01
      • 2015-10-02
      相关资源
      最近更新 更多