0

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

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

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

  1. 当我编辑样式表时,运行代码时不会反映更改。
  2. 当我注释掉这个链接时,不知何故我的网站引用了同一个 CSS 文件——我不知道这是从哪里引用的。这是我链接 CSS 的唯一地方,但它似乎仍然从某个我无法弄清楚的地方继承它。
  3. 我试过这个没有<noscript>. 在这种情况下,当我运行代码时会反映更改,但在进一步编辑它时,更改不会反映。疯狂的是,当我再次将其包含在下面<noscript>时,会反映编辑,但我在第一次尝试中所做的更改会丢失。

我无法理解这种奇怪的行为,但我怀疑这与<noscript>HTML 中的标签有关。我正在使用 JavaScript 在我的网站上运行动画,并且在我进行测试时在我的浏览器中启用了 JavaScript。

4

2 回答 2

1

我会避免以<noscript>这种方式使用标签。对此进行了讨论。看看这篇文章

更好的解决方案是特征检测。

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

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

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

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

更好的是,使用Modernizr,它是一个功能齐全的库,是我所有网站的必备工具。

于 2013-09-27T14:57:51.293 回答
0

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

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

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

于 2013-09-27T14:53:00.113 回答