如果我有一个带有以下设置的photoshop投影
Blend Mode - rgb(0,0,0) /
Opacity - 25% /
Angle - 135 degrees /
Distance 4px /
Spread - 0% /
Size - 4px
如何设置我的CSS3盒子阴影,以便它代表我的Photoshop设计?
答案 0 :(得分:21)
我写了一篇关于conversion of Photoshop Drop Shadow properties into a CSS3 box-shadow的文章。如果您使用的是Sass / Compass,则可以使用photoshop-drop-shadow compass plugin。如果你想自己做数学,这不是非常困难,下面是一个用JavaScript编写的简单例子。两个棘手的部分是将角度转换为X和Y偏移,并将扩散百分比转换为扩展半径。
// Assume we have the following values in Photoshop
// Blend Mode: Normal (no other blend mode is supported in CSS)
// Color: 0,0,0
// Opacity: 25%
// Angle: 135deg
// Distance: 4px
// Spread: 0%
// Size: 4px
// Here's some JavaScript that would do the math
function photoshopDropShadow2CSSBoxShadow(color, opacity, angle, distance, spread, size) {
// convert the angle to radians
angle = (180 - angle) * Math.PI / 180;
// the color is just an rgba() color with the opacity.
// for simplicity this function expects color to be an rgb string
// in CSS, opacity is a decimal between 0 and 1 instead of a percentage
color = "rgba(" + color + "," + opacity/100 + ")";
// other calculations
var offsetX = Math.round(Math.cos(angle) * distance) + "px",
offsetY = Math.round(Math.sin(angle) * distance) + "px",
spreadRadius = (size * spread / 100) + "px",
blurRadius = (size - parseInt(spreadRadius, 10)) + "px";
return offsetX + " " + offsetY + " " + blurRadius + " " + spreadRadius + " " + color;
}
// let's try it
// for simplicity drop all of the units
photoshopDropShadow2CSSBoxShadow("0,0,0", 25, 135, 4, 0, 4);
// -> 3px 3px 4px 0px rgba(0,0,0,0.25)
答案 1 :(得分:4)
此CSS类适用于在没有透明度的一条规则中收集的各种Web浏览器(已知支持:Firefox 3.5 +,Chrome 5 +,Safari 5 +,Opera 10.6 +,IE 9 +):
.shadow {
-moz-box-shadow: 4px 4px 4px #000;
-webkit-box-shadow: 4px 4px 4px #000;
box-shadow: 4px 4px 4px #000;
/* For IE 8 */
-ms-filter: "progid:DXImageTransform.Microsoft.Shadow(Strength=4, Direction=135, Color='#000000')";
/* For IE 5.5 - 7 */
filter: progid:DXImageTransform.Microsoft.Shadow(Strength=4, Direction=135, Color='#000000');
}
...而且这个CSS类具有透明度支持:
.shadow {
-webkit-box-shadow:4px 4px 0px rgba(0, 0, 0, 0.25);
-moz-box-shadow:4px 4px 0px rgba(0, 0, 0, 0.25);
box-shadow:4px 4px 0px rgba(0, 0, 0, 0.25);
-webkit-transform:rotate(135deg);
-moz-transform:rotate(135deg);
-o-transform:rotate(135deg);
transform:rotate(135deg);
}
答案 2 :(得分:2)
这个问题可能已经老了,但对于那些新来者, 自CS6.1版开始,Adobe Photoshop原生支持从图层中提取CSS。
仅需执行以下操作:在图层面板中右键单击要导出的图层,然后选择“复制CSS” ,然后可以将其直接粘贴到.css文件中。
或者,您可以使用http://psd-to-css-shadows.com来获取所需的CSS。
答案 3 :(得分:0)
我写了一个脚本,将图层FX作为CSS字符串复制到剪贴板,同时标准复制图层FX。它有点原始,但它的工作原理。 http://github.com/dfcreative/Photoshopr
答案 4 :(得分:0)
我正在使用一个名为psd to css3的工具,你只需要从photoshop中添加值,你就完成了这个链接 http://melanieceraso.com/psd-to-css3/#sthash.T9hS7I1j.dpbs
.shadow {
-moz-box-shadow: 3px 3px 4px 0 rgba(0, 0, 0, 0.25);
-webkit-box-shadow: 3px 3px 4px 0 rgba(0, 0, 0, 0.25);
box-shadow: 3px 3px 4px 0 rgba(0, 0, 0, 0.25)
}
答案 5 :(得分:0)
这是一个很好的工具,无需编码即可创建photoshop css框:http://www.layerstyles.org/
答案 6 :(得分:0)
最简单的方法是将图形隔离到一层,关闭所有其他层,然后另存为png。这将为您提供透明的阴影区域。
bam