Преобразование тени для фотошопа в тень окна CSS3
Если у меня есть тень от фотошопа со следующими настройками
Blend Mode - rgb(0,0,0) /
Opacity - 25% /
Angle - 135 degrees /
Distance 4px /
Spread - 0% /
Size - 4px
Как я могу установить свою тень от CSS3, чтобы она отражала мой дизайн в фотошопе?
Ответы
Ответ 1
Этот класс CSS предназначен для различных веб-браузеров, собранных в одном правиле без прозрачности (известная поддержка: 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
Я написал статью, в которой преобразование свойств Drop Drop Shadow в тень окна CSS3. Если вы используете Sass/Compass, вы можете использовать плагин photoshop-drop-shadow compass. Если вы хотите сделать математику самостоятельно, это не очень сложно, ниже - простой пример, написанный на 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 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 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)
Ответ 3
Этот вопрос может быть устаревшим, но для тех новичков, Adobe Photoshop имеет встроенную поддержку для извлечения CSS из слоя, начиная с версии CS6.1.
Для этого просто: щелкните правой кнопкой мыши на слое, который вы хотите экспортировать на панели слоев, и выберите "копировать css", затем вы можете вставить его прямо в ваш файл .css.
В качестве альтернативы вы можете использовать http://psd-to-css-shadows.com, чтобы получить CSS, который вы хотите.
Ответ 4
Я написал script, который копирует слой FX в буфер обмена как строку CSS вместе со стандартным копированием уровня FX. Он немного сырой, но он работает.
http://github.com/dfcreative/Photoshopr
Ответ 5
Я использую инструмент под названием psd для css3, вам просто нужно добавить значения из фотошопа, и вы закончили использовать эту ссылку
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)
}
Ответ 6
Вот хороший инструмент, который не требует кодирования и создает Photoshop css box: http://www.layerstyles.org/
Ответ 7
Самый простой способ - изолировать графику на один слой, отключить все остальные слои, а затем сохранить как png. Это даст вам прозрачную область тени.
бам