在HTML中自动嵌入样式表
Automatically embed a stylesheet in HTML
我正在构建错误页面(404/503),需要是独立的html文件,我的服务器端是nodejs,但这些文件将直接托管在nginx。我试图在html文档的顶部自动嵌入样式表,并想知道是否有任何工具用于此目的。搜索堆栈溢出和谷歌不断返回工具内联css用于电子邮件,但这不是我想要的。
我想从 开始before.css
.body { color: black }
before.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>
一旦处理完成,我将以
结束after.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来导出原始的before文件。
多谢
正如许多人评论的那样,您试图找到一个非常复杂问题的解决方案,并且可能有许多易于使用的变通方法。但是,如果你真的想这样做,那么这里有一些我认为最好的方法:
服务器端模板:在HTML中嵌入样式表的最好、干净和直接的方法是使用服务器端脚本语言(如@Mr_Green所指出的)。有很多可供选择的库,当您使用Node.js时,最好的库是EJS或Jade。你也可以使用PHP, Ruby, Python或任何你认为最好的,但思路是一样的:
- 首先,需要从样式表中读取内容并将其存储在一个变量中。在Node.js中,你可以使用
fs.readFile()
来轻松读取。css文件的内容。- 然后,您必须将.css文件的内容(存储在变量中)输出到HTML中。以EJS为例,如果你的CSS文件的内容在一个变量
styleFile
中,那么你可以使用<style><%= styleFile %></style>
来直接将你的样式表的内容放入你的HTML<style>
标签中。 - 然后,您必须将.css文件的内容(存储在变量中)输出到HTML中。以EJS为例,如果你的CSS文件的内容在一个变量
使用Ajax和JavaScript:
另一个解决方案是使用Ajax获取样式表的内容,然后使用JavaScript简单地将其放入<style>
标记中。例如,您可以使用一些jQuery: $("style").html(// stylesheet contents var);
.
当然你也可以使用Haml,如果有帮助的话。
希望这能回答你的问题。
相关文章:
- 一个正则表达式,用于从JS中的HTML标记中删除id、样式和类属性
- 如果类不是一个选项,如何在使用 jQuery 时控制(避免)嵌套 html 元素的样式
- 应用程序在呈现Jquery Mobile之前显示无样式的Html
- ID为的HTML样式类
- 样式<身体>并且<html>来自React
- 使用jQuery按条件将样式设置为html标记
- 使用 javascript 重置 html 所需的样式
- 无法通过内容脚本使用jQuery更改HTML元素的样式
- 在呈现HTML样式和脚本时加载启动页
- HTML + JS:设置文本区域内容样式的最佳方式
- 无法“替换”样式“中的内容 - 其中”html“存储在变量中
- 为html标记定义自定义css样式
- JS(ajax)数组-带有HTML的输出和样式
- 具有固定顶行和左列的Excel样式HTML表格的更好实现?(jsFiddle 示例)
- 样式 HTML 元素,后跟特定类
- 显示和样式HTML源代码在HTML页面
- 如何样式html上传按钮,仍然有文字在一边
- 如何样式HTML选择选项悬停和选择选项效果
- 自定义光标使用 CSS 样式 - html/css - javascript
- 在InfoWindow.content中插入样式HTML表