Единственный способ, которым я смог надежно делать рамки для фотографий в браузерах, - это динамически устанавливать ширину. Вот пример использования jQuery:
$(window).load(function(){
$('img').wrap('<div class="pictureFrame"></div>');
$('div.pictureFrame').each(function(i) {
$(this).width($('*:first', this).width());
});
});
Это будет работать, даже если вы не знаете размеров изображения заранее, потому что оно ожидает загрузки изображений (обратите внимание, что мы используем $ (window) .load вместо более распространенного $ (document). готов) перед добавлением рамки для фотографий. Это немного некрасиво, но работает.
Вот изображение кадра CSS для этого примера:
.pictureFrame {
background-color:#FFFFFF;
border:1px solid #CCCCCC;
line-height:0;
padding:5px;
}
Я бы хотел увидеть надежное кросс-браузерное решение, предназначенное только для CSS. Это решение я придумал для прошлого проекта после большого разочарования, пытаясь заставить его работать только с CSS и HTML.