无法理解为什么我的CSS不起作用

时间:2013-09-27 14:45:15

标签: javascript html css

我创建了一个CSS文件(style1.css),我在<head>下链接。以下生成的HTML是使用模板制作的,所以基本上我不知道为什么样式表嵌套在<noscript>标记内(如果有人能解释我为什么会感激)。

<head>      
    <noscript>
        <link rel="stylesheet" href="css/style1.css" />
    </noscript>
</head>

以下是一些困扰我几天的问题:

  1. 编辑样式表时,运行代码时不会反映更改。
  2. 当我注释掉这个链接时,不知何故我的网站指的是同一个CSS文件 - 我不知道这是从哪里引用的。这是我链接CSS的唯一地方,但它似乎仍然是从我无法弄清楚的地方继承它。
  3. 我在没有<noscript>的情况下尝试了这个。在这种情况下,当我运行代码但后来再次进行编辑时,会反映更改,但不会反映更改。疯狂的事情是,当我再次将其包含在<noscript>下时,会反映编辑,但我在第一次尝试中所做的更改将丢失。
  4. 我无法理解这种奇怪的行为,但我怀疑这与HTML中的<noscript>标记有关。我正在使用JavaScript在我的网站上运行动画,并且在我测试时在我的浏览器中启用了JavaScript。

2 个答案:

答案 0 :(得分:1)

我会避免以这种方式使用<noscript>标记。有人讨论过它。看看this article

更好的解决方案是功能检测。

在你的style1.css中,你定义了以.nojs body.no-js等类名h1.no-js为后缀的规则。

然后只需通过JavaScript / jQuery从DOM元素中删除该类。

$('.no-js').removeClass('no-js');

这样,当没有JavaScript时,上面的代码将无法执行,style1.css中定义的规则将生效。

更好的是,使用Modernizr这是一个功能齐全的图书馆,是我所有网站的必备软件。

答案 1 :(得分:0)

删除noscript标记,它仅用于在未启用javascript时执行代码(https://developer.mozilla.org/en-US/docs/Web/HTML/Element/noscript)。

对于未反映的更改,您的浏览器可能已缓存CSS文件,为了解决此问题,您可以使用强制刷新,这可以通过同时按下控制键和F5键来完成(CTRL + F5 )在Windows上的大多数浏览器中。

模板也可能有自己的CSS文件加载,使用浏览器开发工具查看哪些资源正在加载页面。