Задать вопрос
@Dextersis

Как наложить градиент на тег img?

Здравствуйте. Скажите пожалуйста, возможно ли наложить градиент на

<img src="тут картинка">

Такой вариант не устраивает
<div class="имя класса"
  <img src="тут картинка">
</div>

Именно надо, чтобы градиент работал без использования дива
<img src="тут картинка">
Заранее спасибо.
  • Вопрос задан
  • 2195 просмотров
Подписаться 2 Оценить 1 комментарий
Решения вопроса 1
@Dextersis Автор вопроса
Спасибо всем за ответы. Нашел решение:

$(
			function(){

				// Get all of the gradient images and loop
				// over them using jQuery implicit iteration.
				$( "img.gradient" ).each(
					function( intIndex ){
						var jImg = $( this );
						var jParent = null;
						var jDiv = null;
						var intStep = 0;

						// Get the parent
						jParent = jImg.parent();

						// Make sure the parent is position
						// relatively so that the graident steps
						// can be positioned absolutely within it.
						jParent
							.css( "position", "relative" )
							.width( jImg.width() )
							.height( jImg.height() )
						;

						// Create the gradient elements. Here, we
						// are hard-coding the number of steps,
						// but this could be abstracted out.
						for (
							intStep = 0 ;
							intStep <= 20 ;
							intStep++
							){

							// Create a fade level.
							jDiv = $( "<div></div>" );

							// Set the properties on the fade level.
							jDiv
								.css (
									{
										backgroundColor: "#FFFFFF",
										opacity: (intStep * 5 / 100),
										bottom: ((100 - (intStep * 5) ) + "px"),
										left: "0px",
										position: "absolute"
									}
									)
								.width( jImg.width() )
								.height( 5 )
							;

							// Add the fade level to the
							// containing parent.
							jParent.append( jDiv );

						}

					}
					);

			}
			);


<img src="" width="545" height="386" alt="" class="gradient"/>
Ответ написан
Комментировать
Пригласить эксперта
Ответы на вопрос 5
Stalker_RED
@Stalker_RED
К сожалению к img не применяются :before и :after
Но можно так: jsfiddle.net/Stalk/4uvgu3sh
Ответ написан
@GONGOTA
Sr. front-end developer
Разве что так или через js:

<div class="img-with-gradient"></div>
.img-with-gradient
{
    background: linear-gradient(to bottom, rgba(0, 0, 0, .5) 0%, rgba(0, 0, 0, .5) 59%, rgba(0, 0, 0, 0.5) 100%), url('http://lorempixel.com/400/400/') no-repeat;
    width: 400px;
    height: 400px;
}


Только на css, насколько я знаю, реализовать никак не получится.
Ответ написан
@Darth_Solo
Падаван области Фронт-энда.
А через псевдокласс и абсолютное позиционирование подойдет?
Ответ написан
Комментировать
web1
@web1
Дизайнер
Ну могу предложить не самый лучший вариант, скорее даже глупый.
наложить слой с пнг (градиент с прозрачным фоном) поверх слоя этой картинки.

CSS z-index и все.
картинка с градиентом нужной тебе ширины высотой в 1 пиксель.
Повторяешь его по оси игрек.
Ответ написан
Комментировать
@chirskiy_mixail
Очень давно занимаюсь версткой, имею огромный опыт
Ребята, что вы тут развели, человек задал вопрос, можно наложить градиент на тег img?
На CSS нельзя так сделать, т.к псевдоклассы ::after, ::before не работают.
Ответ написан
Комментировать
Ваш ответ на вопрос

Войдите, чтобы написать ответ

Похожие вопросы