Почему этот PNG появляется с невидимым фоном, когда я помещаю тень от него? - PullRequest
1 голос
/ 25 января 2012

У меня правильный код. Никакой цвет не добавлен к этому. Есть все мои предварительные исправления. Это отображается так в любом браузере. Я сохраняю его с правильной настройкой прозрачности в PS, как показано на снимке экрана. Это прозрачно, за исключением случаев, когда я помещаю тень от коробки. Что это?

Вот несколько скриншотов:

png

png

Ответы [ 5 ]

5 голосов
/ 25 января 2012

Это ожидаемое поведение.Изображение представляет собой квадрат, даже если у вас есть прозрачность.Если вы хотите, чтобы тень на PNG соответствовала непрозрачной части, вам нужно добавить тень к самому PNG и не использовать тень CSS.

В конкретном сценарии, на который вы смотрите(при условии, что вы пытаетесь добавить тень на одну из трех вкладок изображения одинаковой формы), вы можете поместить каждую вкладку в элемент div с отступом, куда будет направлена ​​тень, создать один png с соответствующей тенью тенью,и просто есть класс css, который применяет теневое изображение в качестве фона на активной вкладке.

РЕДАКТИРОВАТЬ: Другой подход?

После того, как я ответил на это, я подумал, "можетможно применить стилизацию к полиграфической карте изображения и наложить тень на нее? "К сожалению, ответ - нет.По независящим от меня причинам карты изображений могут иметь только небольшое количество стилей, применяемых к ним (например, позиционирование), и никогда не будут видны.Тем не менее, это привело меня к другому пути: создать карту изображений с поли-областями и использовать javascript, чтобы получить координаты и создать SVG с теневым фильтром.Затем этот svg можно установить в качестве фонового изображения для фрейма с прозрачным PNG (или поместить прозрачный svg в противном случае поверх изображения. Это, очевидно, не будет работать для всех браузеров, поскольку некоторые не поддерживают svg, но это интересноконцепции, и мне, возможно, придется собрать библиотеку js для ее реализации ... это определенно облегчит применение фигурных теней.

1 голос
/ 25 января 2012

Это все еще прозрачно, если вы видите левую сторону изображения, где появляется синий фон.

enter image description here

Тень в левом нижнем углу просто делает его похожим награницы.

Если вы хотите тень на фактическом «знаке», вы должны добавить это в свой графический редактор

1 голос
/ 25 января 2012

Потому что ваш png устанавливает свою тень на основе элемента, который в вашем случае является изображением размера x / y (прямоугольник). Он не знает, как распознать линии обрезки, вместо этого применить тень к самому изображению как к части изображения.

1 голос
/ 25 января 2012

Тень применяется ко всему изображению, CSS не знает о прозрачности вашего изображения и не может применить тень только к фактическому непрозрачному содержимому.Вы должны добавить тень на свое изображение в Photoshop (или в программном обеспечении для редактирования изображений).

0 голосов
/ 25 января 2012

Тени наносятся на размеры изображения независимо от прозрачности.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...