javascript - 在 HTML 中自动嵌入样式表

标签 javascript html css build gulp

我正在构建需要独立 html 文件的错误页面 (404/503),我的服务器端是 nodejs,但这些文件将直接托管在 nginx 中。我正在尝试在 html 文档的顶部自动嵌入 样式表,并且想知道是否有任何工具可用于此目的。在 stack overflow 和 google 上搜索不断返回工具以在电子邮件中使用内联 css,但这不是我想要的。

我想开始

之前.css

.body { color: black }

之前.html

<!DOCTYPE html>
<html>
  <head>
    <title>A Question</title>
    <link rel="stylesheet" href="before.css">
  </head>
  <body>
    <p>Here be the answer</p>
  </body>
</html>

一旦这个过程完成,我会得到

之后.html

<!DOCTYPE html>
<html>
  <head>
    <title>A Question</title>
    <style>.body { color: black }</style>
  </head>
  <body>
    <p>Here be the answer</p>
  </body>
</html>

理想的解决方案是一个 gulp 插件或关于如何编写插件的想法。
如果需要,我可以用 JS 编写。此外,我已经在使用 EJS 和 Stylus 来导出原始文件之前。

非常感谢

最佳答案

正如许多人评论的那样,您正试图找到一个非常复杂的问题的解决方案,并且可能有许多易于使用的解决方法。但如果你真的想这样做,那么我认为这里有一些最好的方法:

服务器端模板:

将样式表嵌入到 HTML 中的最佳、简洁和直接的方法是使用服务器端脚本语言(正如@Mr_Green 指出的那样)。有很多可供选择,当您使用 Node.js 时,最好的库是 EJS 或 Jade。您也可以使用 PHP、Ruby、Python 或您认为最好的任何语言,但思路是一样的:

  1. 首先,您需要从样式表中读取内容并将其存储在一个变量中。在 Node.js 中,您可以使用 fs.readFile()轻松阅读 .css 文件的内容。
  2. 然后,您必须将 .css 文件的内容(存储在一个变量中)输出到您的 HTML 中。以 EJS 为例,如果您的 CSS 文件的内容在变量 styleFile 中, 那么你可以做 <style><%= styleFile %></style>直接将样式表的内容放入 HTML <style>标签。

通过 JavaScript 使用 Ajax:

另一种解决方案是使用 Ajax 获取样式表的内容,然后使用 JavaScript 将其简单地放入 <style> 中。标签。例如,对于某些 jQuery,您可以执行以下操作:$("style").html(// stylesheet contents var); .

当然,如果有帮助,您也可以使用 Haml

希望这能回答您的问题。

关于javascript - 在 HTML 中自动嵌入样式表,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/31401708/

相关文章:

javascript - 在 Facebook 上查看 XS Cookie

javascript - 单击 Navbar-Toggle 按钮时使页面向下移动

html - 如何获得 chrome 扩展程序来影响网页本身? (不是弹出窗口)

css - 以垂直和水平行居中 Bootstrap 面板

css - 导入 .less 文件被编译成单个 .css 文件

html - 绝对垂直居中导致部分div在超过浏览器窗口垂直大小时消失?

javascript - 从同一个类中的另一个方法调用方法

javascript - React 组件构造函数何时运行与生命周期相关?

javascript - 为什么 If 语句为 hashTable 返回 undefined?

html - 占位符在 chrome 中不起作用