为啥我的页面元素不尊重我的本地 Site.css 文件?

Posted

技术标签:

【中文标题】为啥我的页面元素不尊重我的本地 Site.css 文件?【英文标题】:Why are my page elements not respecting my local Site.css file?为什么我的页面元素不尊重我的本地 Site.css 文件? 【发布时间】:2021-01-20 20:27:59 【问题描述】:

我有一个老小提琴 here 为 h1 元素设置各种属性,并且有一个 smallcaps 类:

h1 
    font-family: "Lucida Sans", "Courier";
    text-shadow: -4px 4px 3px #999999;
    font-size: 3.5em;


.smallcaps 
    font-variant: small-caps;

在那里它工作正常。我正在尝试在这样的 aspx 页面中做同样的事情:

<head runat="server">
    <title>Flix 4 Fams</title>
    <link rel="stylesheet" href="https://cdnjs.cloudflare.com/ajax/libs/twitter-bootstrap/4.5.0/css/bootstrap.min.css" />
    <link href="Site.css" rel="stylesheet" type="text/css" />
</head>
<body>
    <form id="form1" runat="server">
    <div id="dumboJr" style="text-align: center !important;">
            <h1>Flix 4 Fams (Flicks for Families)</h1>
            <h5>Select the Criteria you want to search by and then tap or click the "Find"      button</h5>
    </div>
    . . .

...在 Site.css 文件的末尾加上这个:

#dumboJr h1 
    border: 3px solid blue;
    text-align: center !important;
    font-family: "Lucida Sans", "Courier" !important;
    text-shadow: -4px 4px 3px #999999 !important;
    font-variant: small-caps !important;
    font-size: 3.5em;


.smallcaps 
    font-variant: small-caps !important;

...但它没有效果。因此,即使使用“!important”指令,它也不会被确认。

并不是说 Site.css 是“不可见的”;至少在 Site.css 中应用了一件事,即:

input[type=number] 
    width: 60px;
    margin-left: 4px;
    margin-right: 4px;

...所以 Site.css 并没有被完全忽略...

我尝试了更直接的方法来让 CSS 在此之前应用,例如这个(起初没有“!important”指令):

h1 
    border: 3px solid blue;
    text-align: center !important;
    font-family: "Lucida Sans", "Courier" !important;
    text-shadow: -4px 4px 3px #999999 !important;
    font-variant: small-caps !important;
    font-variant: small-caps !important;
    font-size: 3.5em;

...但这也无济于事。

我至少能够通过添加这个内联使文本居中:

style="text-align: center !important;"

...但这有点混乱和笨拙。我宁愿找出 CSS 不工作的原因以及如何让它工作。

事实上,即使我尝试通过内联所有样式属性来“暴力破解”:

<h1 Style="border: 3px solid blue;
    text-align: center !important;
    font-family: "Lucida Sans", "Courier" !important;
    text-shadow: -4px 4px 3px #999999 !important;
    font-variant: small-caps !important;
    font-size: 3.5em;">Flix 4 Fams (Flicks for Families)
</h1>

...它所做的唯一更改是在 h1 元素周围放置一个蓝色边框 - 没有应用其他样式。

是什么破坏了我的 CSS 被应用?

更新

首先,我对 Site.css 的部分影响是错误的。我认为是 Site.CSS 文件的影响是其他原因造成的。

那么,我按照建议看“ViewSource”

回顾一下,我在我的页面中包含了 Site.css:

<head runat="server">
    <title>Flix 4 Fams</title>
    <link rel="stylesheet" href="https://cdnjs.cloudflare.com/ajax/libs/twitter-bootstrap/4.5.0/css/bootstrap.min.css" />
    <link href="Site.css" rel="stylesheet" type="text/css" />
</head>

...它确实出现在“查看源代码”中:

<head><title>
    Flix 4 Fams
</title>
    <link rel="stylesheet" href="https://cdnjs.cloudflare.com/ajax/libs/twitter-bootstrap/4.5.0/css/bootstrap.min.css" />
    <link href="Site.css" rel="stylesheet" type="text/css" />
</head>

但是我在 Site.css 中添加的指令无效。即使我以蛮力方法添加到 h1 元素中的内联样式,如下所示,也没有效果:

<body>
    . . .
    <div id="dumboJr" style="text-align: center !important;">
        <h1 Style="border: 3px solid blue;
            text-align: center !important;
            font-family: "Lucida Sans", "Courier" !important;
            text-shadow: -4px 4px 3px #999999 !important;
            font-variant: small-caps !important;
            font-size: 3.5em;">Flix 4 Fams (Flicks for Families)
        </h1>
    . . .

更新 2

这并没有回答我的问题,但它解决了我的问题:

我通过向 h1 添加一个 id 和一个 runat:server 来让它工作:

<h1 runat="server" id="fakeJumbotron">

...然后根据 Robert C. Barth here 的评论将其添加到代码隐藏中:

protected void Page_Load(object sender, EventArgs e)

    fakeJumbotron.Attributes.Add("style", "font-family: \"Lucida Sans\", \"Courier\";");
    fakeJumbotron.Attributes.Add("style", "text-shadow: -4px 4px 3px #999999");
    . . .

【问题讨论】:

你是说 site.css 被调用了对吗?仍然去查看页面源并检查它是否再次被调用。 请看我的更新 @B.ClayShannon 不确定出了什么问题。你能分享MVP吗?它对我有用:github.com/dipen08it419/AspNetCssTest 【参考方案1】:

尝试更具体,例如 div #dumboJr h1 而不是 #dumboJr h1,如果这不起作用,请尝试删除引导链接并查看样式表是否应用了所有 css 属性

【讨论】:

我会尝试第一个建议,但如果我删除引导程序,我的页面将从看起来像猫药变成比一袋烟头丑 9 倍。 在 CSS 中添加“div”没有区别

以上是关于为啥我的页面元素不尊重我的本地 Site.css 文件?的主要内容,如果未能解决你的问题,请参考以下文章

为啥我的 HTML 表格不尊重我的 CSS 列宽?

为啥我的 gen_server 不尊重模式匹配?

为啥桌面版 Safari 15 不尊重我的主题颜色设置?

为啥我的 mvc 项目重定向到默认的 403 错误页面,而不是我重定向到的页面,而不是在本地的 IIS 上?

输入为啥不尊重flex?

查看不尊重约束,这是为啥呢?