【问题标题】:Styles are not applying to elements of ASP Classic site样式不适用于 ASP Classic 站点的元素
【发布时间】:2012-11-17 15:07:29
【问题描述】:

我正在重新设计 ASP Classic 网站。整个站点有一个名为 Main 的主要 CSS 文件,其中包含所有样式。这个文件中没有很多样式,因为当前设计几乎是默认的。一些页面元素的样式是内联编写的。

对我来说,这项任务似乎很简单。我只是在 Main.css 中将所有基本元素的样式更改为新设计,但我的问题是某些页面的元素并没有改变它们的样式,即使我是内联编写的。有时元素会改变它们的一些样式属性,但总体上不会。有时新样式只会使页面布局变得超出我的理解范围。

Main.css 包含在那些有问题的页面中。所有这些页面内部都有大量的 ASP 代码,包含业务逻辑。我不是 ASP Classic 专业人士,所以我想知道是什么原因导致这些元素不符合基本的 HTML 和 CSS 样式?

例如(我来自俄罗斯,但样本应该清楚):

这是其中一个 ASP 页面的代码:

结果如下:

这是我从样式观察器 (IE9) 中得到的信息:

内联样式的输入按钮:

Main.css 样式的输入按钮:

如您所见,如果我使用内联样式,则只有它的一部分适用,这很奇怪。如果我用Main.css 文件应用样式,它只继承自 BODY 标签,不会对input[type="button"] 选择器做出反应。在其他页面上,这个选择器工作得很好。

UPD1。看起来我通过将<link ...></link> 更改为<link .../>input 相同,在结果页面中摆脱了</link/></input/> 奇怪的标签。但这并没有解决我的问题。该页面仍然识别 Main.css 文件的存在并将其部分(例如 BODY 标记样式)分配给我的按钮,但它不识别与按钮本身关联的样式。

UPD2。我发现很奇怪的事情。有问题的页面收到的Main.css 文件与原始文件不同!此文件中的元素缺少一些原始属性,例如:

Main.css

INPUT.button {
    min-width: 143px;
    font-face: Arial;
    height: 34px;
    border: 1px solid grey;
    background: #FCFCFC;
    border-radius: 7px;
    box-shadow: 0 0 2px grey;
    padding-left: 10px;
    padding-right: 10px;    
}

收到Main.css:

INPUT.button {
    min-width: 143px;
    font-face: Arial;
    height: 34px;
    border: 1px solid grey;
    background: #FCFCFC;
    padding-left: 10px;
    padding-right: 10px;    
}

好像只是跳过了一些属性,怎么可能??

【问题讨论】:

  • 可能是缓存问题?尝试在浏览器中深度重新加载,并确保服务器和客户端之间没有代理。
  • @arkascha 我每次运行新版本的页面时都会清除缓存。
  • 您有两个链接到页面的样式表:/ui/styles/main.css/ui/Main.css。你需要在同一个页面中吗?
  • @Flakes 是的。 /ui/Main.css - 这是包含元素基本样式的主文件(它是默认配置中唯一的样式文件)和 /ui/styles/main.css 是我的包含新创建的设计元素的样式(例如左侧菜单,带有徽标的上部菜单等 - 旧网站没有这些)。
  • this thread 表示将 <meta http-equiv="X-UA-Compatible" content="IE=edge" /> 添加到您的 HTML 页面。也许这会解决它,因为你只针对 IE

标签: html css asp-classic


【解决方案1】:

Asp 与样式无关。您需要在渲染后查看应用的样式。我会推荐 Chrome。如果您右键单击一个元素,您可以选择“检查元素”,右侧有一个框,您可以在其中准确查看元素应用了哪些样式。那时,只需找出违规风格的来源即可。

您很可能有一个内联样式,该样式正在与您的新样式冲突的某个包含的 asp 页面中呈现。一旦您使用 Chrome 找出正在注入的样式,您就可以查找该样式的定义位置。

【讨论】:

  • 是的,我也是这么想的,但我的问题是我看不到冒犯风格的来源。我的意思是,当我打开样式调试器(我使用 IE9,因为最终产品将仅由 IE 浏览器使用)时,就像我尝试分配的样式甚至根本没有应用于元素一样。我尝试使用元素的全局样式、类、id 和内联,但它在调试器中的行为仍然就像我没有为它分配任何样式一样。
【解决方案2】:

所以问题是某些页面错过了<!DOCTYPE html> 标签。而且那些有问题的页面在<html>标签之前有一部分ASP代码,这反过来又使整个页面呈现错误。为了修复它,我只是将所有 ASP 代码移到了 <head> 标签内,现在一切正常。

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 2019-04-15
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2014-09-05
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多