【发布时间】:2015-03-06 05:21:54
【问题描述】:
在使用 CSS 黑色到透明线性渐变时,我注意到它不会逐渐淡化为透明,而是使灰色区域停留的时间更长,并且仅在接近末尾时才变得透明并具有明显的限制。
在注意到这一点后,我决定使用具有确切属性的 Photoshop 渐变,它看起来更好,渐变从黑色平滑地线性变为透明。
以下示例显示左侧为 CSS 线性渐变,右侧为 Photoshop 生成的渐变 - 两者均使用完全相同的属性创建:
#css, #ps{
height:100px;
width:50%;
}
#css{
float:left;
background:linear-gradient(black, transparent);
}
#ps{
float:right;
background:url("data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAAAEAAABkCAMAAABw8qpSAAABLFBMVEUCAgIDAwMEBQUGBgYICAgJCQkLCwsNDQ0PDw8RERETExMVFRUXFxcZGRkbGxsdHh4gICAiIiIkJSUnJycpKiosLCwvLy8xMjI0NDQ3Nzc5Ojo8PDw/Pz9CQkJFRUVISEhLS0tOTk5RUVFUVFRXV1daWlpdXV1gYGBjY2NmZmZpamptbW1wcHBzc3N2dnZ5eXl8fX2AgICDg4OGhoaJiYmMjIyQkJCTk5OWlpaZmZmcnJyfn5+ioqKlpqaoqamrrKyvr6+ysrK0tbW3uLi6urq9vb3AwMDDw8PGxsbJycnLy8vOzs7R0dHT09PW1tbY2Njb29vd3d3g4ODi4uLk5OTm5ubp6enr6+vt7e3v7+/x8fHy8vL09PT29vb4+Pj5+fn7+/v8/Pz+/v4AAAE6GCMnAAAAY3RSTlP+/Pv5+Pb08vHv7evp5uTi4N3b2NbT0c7LyMbDwL26t7SxrquopaKfnJmWk4+MiYaDgHx5dnNwbGlmY2BdWldUUU5LSEVCPzw5NzQxLiwpJyQiHx0bGRYUEhAODQsJBwYEAwEIFXNRAAAAEElEQVQIHWNJZpnLwjj0IQCJ8QLzQI0QnQAAAABJRU5ErkJggg==");
}
<div id="css"></div>
<div id="ps"></div>
如您所见,差异清晰可见。是否可以将 Photoshop 的真正线性渐变复制到 CSS 中,或者我唯一的选择是使用 base64/png 技巧来实现实际的线性渐变? 因为目前 css 的线性渐变不是线性的,实际上从我所见,它创建了一个 easeInOut-gradient 而不是线性的。
【问题讨论】:
-
你在 Photoshop 中设置了什么混合模式?
-
@steveax 没有混合模式,它是一个简单的渐变,以黑色开始,以透明结束。
标签: css linear-gradients