使用以下 html/css 时,我在 Firefox 3.0.10/Leopard 中遇到奇怪的语法错误:

foo.html:

<!DOCTYPE html PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN"
   "http://www.w3.org/TR/html4/loose.dtd">

<html lang="en">
<head>
  <link rel="stylesheet" href="foo.css"/>
</head>
<body>
Foo
</body>
</html>

foo.css:

div {
  color: #FF0000;
}

我在控制台中得到的错误是:

Error: syntax error
Source File: file://path/to/foo.css
Line: 1, Column: 1
Source Code:
div {

它不是 CSS,因为将其粘贴到内联 STYLE 标记的正文中效果很好。它不是链接标记,因为将 HREF 指向堆栈溢出的 css 文件不会给出错误。感觉像是 Firefox 的 bug,但我找不到任何相关文档。这是一个已知问题吗?有解决方法吗?这使得调试或验证变得困难。

谢谢。

有帮助吗?

解决方案 2

正如评论中所建议的,答案是“关闭扩展(这是 YSlow)”。

其他提示

它会在文件中的第一个字符(即“d”)上给您错误,这对我来说排除了诸如“隐藏”特殊字符之类的内容。我猜想 Firefox 出于某种原因无法在本地打开该文件,或者该文件意外地使用某种编码保存,尽管该编码在对话框中显示良好,但无法正常解析。也许它被错误地保存为 Unicode?

如果您可以将我们链接到实际文件,那将会有所帮助,因为您的语法(尽管标记并不完全有效,但我不认为就是这样)在您粘贴的 .css 文件中是完美的。

文件是在windows上写的吗?也许您需要将回车/新行重新格式化为 mac os x。尝试在命令行上通过类似 dos2unix 的方式运行该文件。也可能是一个 博姆 你没有看到。

我的猜测是,文件中可能意外保存了一些隐藏字符。尝试重新保存 CSS 文件,或重新键入第一行,然后重新保存。

如果您来自 Google 并且使用本地 html,请注意,Firefox 会阻止对使用 file:// 协议,因为它在技术上是跨域请求。

一个快速解决方案是将包含您的站点的目录提供给本地主机 http://. 。如果你安装了 python 解释器,你可以很容易地做到这一点:

python3 -m http.server 8080

然后通过浏览器访问localhost:

firefox localhost:8080

您可以更换 8080 与任何其他端口。

许可以下: CC-BY-SA归因
不隶属于 StackOverflow
scroll top