:root 中的 CSS 背景图像渐变

标签 css css-selectors background-image css-variables

我有一个代码显然不起作用。它是 body 元素之后的渐变。在我决定将颜色移动到 :root 之前,渐变一直在工作。这是有问题的代码:

:root {
--primary: #222;
--primary-rgb: 31, 31, 31;
--color-888: #888;
--color-888-rgb: 136, 136, 136;
--color-1f1: #1f1f1f;
--color-white-button: #fff;
--color-b8b: #b8b8b8;
--color-f21: #F23D3F;
--pre-bg-rgb: 31, 31, 31;
--scrollbar-hover: #4a4a4a;
--scrollbar-active: #383838;
--fade-rgb: 34, 34, 34;
}

[data-theme="dark"] {
    --primary: #fff;
  --primary-rgb: 255, 255, 255;
  --color-888: #000;
--color-888-rgb: 0, 0, 0;
  --color-1f1: #ccc;
  --color-white-button: #000;
--color-b8b: #d4d4d4;
--color-f21: #f52a2c;
--pre-bg-rgb: 0, 0, 0;
--scrollbar-hover: #363636;
--scrollbar-active: #454545;
--fade-rgb: 255, 255, 255;
}

body::after {
  content: '';
  position: fixed;
  bottom: 0;
  pointer-events: none;
  width: 100%;
  height: 30px;
  background: -webkit-linear-gradient(rgba(var(--primary-rgb), 0) 0%, rgba(var(--primary-rgb), 1) 100%);
  background-image: -moz-linear-gradient(rgba(var(--primary-rgb), 0) 0%, rgba(var(--primary-rgb), 1) 100%);
  background-image: -o-linear-gradient(rgba(var(--primary-rgb), 0) 0%, rgba(var(--primary-rgb), 1) 100%);
  background-image: linear-gradient(rgba(var(--primary-rgb), 0) 0%, rgba(var(--primary-rgb), 1) 100%);
  background-image: -ms-linear-gradient(rgba(var(--primary-rgb), 0) 0%, rgba(var(--primary-rgb), 1) 100%);
}

为什么它不起作用?

这是演示的链接:https://codepen.io/MAJO-SEARCH/project/editor/XEWoVE

最佳答案

您正在使用一种不再需要且不适用于 CSS 变量的非常古老的语法。

只需像下面那样做。现在到处都支持渐变,不需要供应商前缀。

  :root {
  --primary: #222;
  --primary-rgb: 31, 31, 31;
  --color-888: #888;
  --color-888-rgb: 136, 136, 136;
  --color-1f1: #1f1f1f;
  --color-white-button: #fff;
  --color-b8b: #b8b8b8;
  --color-f21: #F23D3F;
  --pre-bg-rgb: 31, 31, 31;
  --scrollbar-hover: #4a4a4a;
  --scrollbar-active: #383838;
  --fade-rgb: 34, 34, 34;
}

[data-theme="dark"] {
  --primary: #fff;
  --primary-rgb: 255, 255, 255;
  --color-888: #000;
  --color-888-rgb: 0, 0, 0;
  --color-1f1: #ccc;
  --color-white-button: #000;
  --color-b8b: #d4d4d4;
  --color-f21: #f52a2c;
  --pre-bg-rgb: 0, 0, 0;
  --scrollbar-hover: #363636;
  --scrollbar-active: #454545;
  --fade-rgb: 255, 255, 255;
}

body::after {
  content: '';
  position: fixed;
  bottom: 0;
  pointer-events: none;
  width: 100%;
  height: 30px;
  background: linear-gradient(rgba(var(--primary-rgb), 0) 0%, rgba(var(--primary-rgb), 1) 100%);

关于:root 中的 CSS 背景图像渐变,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/59234588/

相关文章:

css - 使用::after 时的边界半径问题

css - Angular 将参数传递给 css 动画

c# - C#从html jquery/css-selector解析/获取数据?

javascript - 背景位置 y 的断断续续的 JavaScript 动画

jquery - 相对于页面滚动背景

html - 没有宽度的CSS div中心

html - Heroku 没有将新提交的 CSS 加载到我的 Node 应用程序中

html - 多个属性的 CSS 规则

javascript - JS : Hide all elements except of one (by id) (and all of its descending child elements and its parents)

css - Bootstrap .page-header 背景图片