【发布时间】:2016-09-06 09:57:02
【问题描述】:
我需要在不实际使用外部 CSS 文件的情况下使用 CSS 样式完成整个 HTML 文档。
例如我需要这个...
index.html
<head>
<link rel="stylesheet" href="css/styles.css">
</head>
<body>
<div id="foo">Test</div>
</body>
css/styles.css
#foo {
color: red;
}
...转换成任何一个 ff,这样:
1) 外部 CSS 中的所有样式都内联到元素中
index.html
<head>
<link rel="stylesheet" href="css/styles.css">
</head>
<body>
<div id="foo" style="color:red;">Test</div>
</body>
或
2) 样式被内联到<style> 标签中
index.html
<head>
<link rel="stylesheet" href="css/styles.css">
<style>#foo { color: red; }</style>
</head>
<body>
<div id="foo">Test</div>
</body>
这在原生 Javascript/jQuery 中可行吗?谢谢。
【问题讨论】:
-
可能是的,但为什么呢?
-
这个工具可以让你内联样式putsmail.com/tests/new
-
是的...但是你做了什么?作为参考,您可以使用来自gist.github.com/surjikal/3007123的
jquery.getStyleObject.js插件 -
如果你可以使用 Gulp,那么这可能适合你:stackoverflow.com/questions/29770191/…
-
您的样式表的外部性如何?不同的域?你完蛋了。同一个域?您可以将
document.styleSheets与var str = ''; Array.prototype.forEach.call(document.styleSheets, function(s){ if(s.href){return;} Array.prototype.forEach.call(s.cssRules, function(r){str+=r.cssText}); });之类的东西一起使用,对于#1,您必须针对每个元素检查每个cssRules,如下所示:element.matches(cssRule.selectorText)。但要注意一些 css 规则被浏览器错误解析,可能会抛出错误
标签: javascript jquery html css