CSS 继承之前的背景 rgba 值 EXCEPT alpha(不透明度)
CSS inherit previous background rgba value EXCEPT alpha (opacity)
我只想更改现有背景颜色的不透明度,颜色由服务器控制,我不能更改它,因为我使用网站构建器,但我想用 [=11 覆盖背景不透明度值=].
我读过 How do I give text or an image a transparent background using CSS? 并通过互联网搜索,我找到的唯一答案是使用 rgba(r,g,b,a)
函数。
那么我如何才能使 r、g、b 继承除 alpha(不透明度)之外的先前值?如果不可能,是否有任何解决方法来实现相同的目的?如果无法使用纯 css 解决方案,则使用 javascript 的任何解决方法 ?
在JavaScript中有一种方法可以做到这一点:
首先,定位您的元素:
var elem = document.querySelector('#maincontent');
那么,可以抓取当前的background-color:
var oldColor = getComputedStyle(elem).backgroundColor;
然后,更新颜色:
var newColor = 'rgba' + oldColor.slice(3, -1) + ', 0.5)';
// 上面一行会将颜色从 rgb 转换为 rgba
// rgb(16, 14, 23) => rgba(16, 14, 23, 0.5)
现在,您可以更新目标元素的bg-color:
elem.style.backgroundColor = 新颜色;
我只想更改现有背景颜色的不透明度,颜色由服务器控制,我不能更改它,因为我使用网站构建器,但我想用 [=11 覆盖背景不透明度值=].
我读过 How do I give text or an image a transparent background using CSS? 并通过互联网搜索,我找到的唯一答案是使用 rgba(r,g,b,a)
函数。
那么我如何才能使 r、g、b 继承除 alpha(不透明度)之外的先前值?如果不可能,是否有任何解决方法来实现相同的目的?如果无法使用纯 css 解决方案,则使用 javascript 的任何解决方法 ?
在JavaScript中有一种方法可以做到这一点:
首先,定位您的元素:
var elem = document.querySelector('#maincontent');
那么,可以抓取当前的background-color:
var oldColor = getComputedStyle(elem).backgroundColor;
然后,更新颜色:
var newColor = 'rgba' + oldColor.slice(3, -1) + ', 0.5)';
// 上面一行会将颜色从 rgb 转换为 rgba
// rgb(16, 14, 23) => rgba(16, 14, 23, 0.5)
现在,您可以更新目标元素的bg-color:
elem.style.backgroundColor = 新颜色;