我正在尝试使用 CSS3 自定义属性(又名 CSS 变量)取得很大成功。我说的是--black: #000;
和background: var(--black);
类型变量。但是,当变量在单独的链接文档中声明时,我没有运气。
由于 CSS 自定义属性的浏览器兼容性超过 72%(来源:https ://caniuse.com/#search=css%20variables ),我很想在我知道我的受众正在使用的非常具体的应用程序中开始使用它们兼容的浏览器。
我想知道这些 CSS 自定义属性是否在所有链接的 CSS 文档的范围内都是全局的,或者它们是否只是:root
每个文档的全局(在元素处)?
我无法找到答案(即使在规范中)!
我读到的一些研究:
- https://drafts.csswg.org/css-variables/#defining-variables
- http://www.javascriptkit.com/dhtmltutors/css-variables-tutorial.shtml
- https://www.smashingmagazine.com/2017/04/start-using-css-custom-properties
- https://css-tricks.com/css-custom-properties-theming
- https://www.sitepoint.com/practical-guide-css-variables-custom-properties
- https://www.toptal.com/front-end/dynamic-css-with-custom-properties
- https://googlechrome.github.io/samples/css-custom-properties/
- https://tympanus.net/codrops/css_reference/custom-properties/
我的具体问题发生在 Ruby on Rails 应用程序中,我将 CSS 自定义属性包含在<style>
SCSS 样式表之前的块中,包括在部署时将被预编译。如果我在 SCSS 的顶部包含变量,一切正常。然而,该<style>
块包含主题变量,需要在运行时由 ERB 编译。
<!DOCTYPE html>
<html>
<head>
<style type="text/css">
:root {
--primary-color: #000;
}
</style>
<%= stylesheet_link_tag 'application', media: 'all' %>
</head>
</html>