Подтвердить что ты не робот

Изображение CSS поверх <img>

Как повторить этот 1px x 1px фоновый рисунок CSS поверх HTML <img>?

http://jsfiddle.net/hjv74tdw/1/

Я наткнулся на CSS показать фоновое изображение div поверх других содержащихся элементов, однако, похоже, требуется дополнительный div. В идеале мне жаль, что мне не нужно было использовать div вообще, но в соответствии с Фоновым изображением CSS над HTML img, что действительно невозможно, по крайней мере, не для 100 % ширины.

.test {
  background: url(http://placehold.it/1/1) repeat;
  position: relative;
  z-index: 100;
  width: 200px;
}
.test img {
  width: 100%;
  display: block;
  position: absolute;
  z-index: 50;
}
<div class="test">
    <img src="http://lorempixel.com/400/400">
</div>
4b9b3361

Ответ 1

Вы можете использовать псевдоэлемент. В этом примере псевдоэлемент :after абсолютно позиционируется относительно родительского элемента. Он принимает размеры всего родительского элемента, а размер родительского элемента определяется размером дочернего элемента img.

.test {
  display: inline-block;
  position: relative;
}
.test:after {
  content: '';
  position: absolute;
  top: 0; right: 0;
  bottom: 0; left: 0;
  background: url(http://placehold.it/20x20/1) repeat;
}
<div class="test">
    <img src="http://lorempixel.com/200/200">
</div>

Ответ 2

Другой способ: установить content на пустой и установить фон, например:

img {
    background: url(...) center center no-repeat;
    background-size: cover;
    content: '';
    display: block;
    width: 800px;
    height: 100px;
}

Вот демо: http://jsfiddle.net/infous/effmea8x/

В этой демонстрации первое изображение стандартное, но с непропорциональной шириной и высотой, второе - с фоном. Первый из них плохо масштабируется, второй - в порядке.