Не существует чистого решения css для вашего вопроса, совместимого с кроссбраузерным интерфейсом.Я понимаю, что этот ответ не соответствует вашим первоначальным критериям, но я решил, что все равно предоставлю его, чтобы вы могли иметь его в качестве опции.
Использование псевдоэлементов (:before
) было бы логичнымВыбор для CSS3, но, увы, они не работают с тегами img.
Вам придется что-то сделать, вместо этого поменять разметку или добавить немного JavaScript.Предполагая, что вы не можете редактировать разметку (иногда вы не можете контролировать исходные данные), но можете управлять javascript, вы можете сделать это с помощью чистого javascript, например:
var transparentImage = "http://rd.cas.de/tim/native/image.png";
var imageList = document.getElementsByTagName("img");
var arrImages = [];
for (var i = 0; i < imageList.length; i++ ) {
// store the images as is first, otherwise the list is living and
// you loop forever...
arrImages.push(imageList[i]);
}
for (i = 0; i < arrImages.length; i++ ) {
// first wrap all the images in a relative positioned div.
var wrapper = document.createElement('div');
var newImg = document.createElement("img");
newImg.setAttribute("src", transparentImage);
newImg.style.position = "absolute";
wrapper.appendChild(newImg);
wrapper.appendChild(arrImages[i].cloneNode(true));
arrImages[i].parentNode.replaceChild(wrapper, arrImages[i]);
}
1009 * jsfiddle , который делает то, что вы хотите (но с JavaScript).