2012-02-24 119 views
8

如果我有一個的Photoshop陰影具有以下設置轉換的Photoshop陰影成CSS3框陰影

混合模式 - RGB(0,0,0)/ 透明度 - 25%/ 角度 - 135度/ 距離4PX/ 傳播 - 0%/ 大小 - 4PX

如何設置我的CSS3框陰影,因此代表着我的Photoshop設計?

回答

3

這個CSS類是收集在一個沒有規則的透明度不同的網絡瀏覽器(俗稱支持:火狐3.5 +,Chrome的5+,Safari 5以上,歌劇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); 

} 
20

我寫了一篇文章,涵蓋了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) 
+0

好東西+1 – Ozzy 2012-05-09 20:50:34

0

我使用了一個名爲PSD工具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) 
}