ROT*_*OGG 6 javascript css chromium
如果我通过javascript中的rgba(r,g,b,a)将alpha值设置为1以外的任何值,则浏览器设置的实际值略有不同.但CSS中的值设置完全匹配.
请参阅code -pen-site中的代码示例
<head>
<script type="text/javascript" language="javascript">
window.onload=function() {
document.getElementById("p1").style["background-color"]="rgba(255,0,0,0.3)";
}
</script>
</head>
<body>
<p>RGB colors with opacity:</p>
<p id="p1">Red</p>
<p id="p2">Green</p>
</body>
Run Code Online (Sandbox Code Playgroud)
为什么如果通过Javascript设置CSS颜色,那么数字会改变?
首先,我原来的观察是错误的。如果您单击“计算”选项卡来检查背景颜色,则“style”标记内的 CSS 规则和元素内的内联规则都会观察到这种差异。我
在Chromium 源代码中 ,此实现解释了 alpha 值的 0.001961 差异
// Convert the floating pointer number of alpha to an integer in the range [0, 256),
// with an equal distribution across all 256 values.
int alphaComponent =
static_cast<int>(
clampTo<double>(alpha, 0.0, 1.0) * nextafter(256.0, 0.0));
Run Code Online (Sandbox Code Playgroud)
此处,如果 alpha 为 0.3,则 alphaComponent 变为 0.298039。(如果我将 alpha 设置为 [0.0, 1.0] 中的任何浮点,则 webInspector 显示的数字与从上述公式获取的 alphaComponent 值相匹配。
| 归档时间: |
|
| 查看次数: |
276 次 |
| 最近记录: |