Bunun eski olduğunu biliyorum, ancak yukarıda gördüğüm birçok çözümün görüntü / videonun kap için çok büyük olmasıyla ilgili bir sorunu var, bu yüzden aslında arka plan boyutu kapağı gibi davranmıyor. Ancak, resim ve videolar için işe yarayacağı şekilde "faydalı sınıflar" yapmaya karar verdim. Kapsayıcıya .media-cover-wrapper sınıfını ve medya öğesinin kendisini .media-cover sınıfını vermeniz yeterlidir.
Sonra aşağıdaki jQuery var:
function adjustDimensions(item, minW, minH, maxW, maxH) {
item.css({
minWidth: minW,
minHeight: minH,
maxWidth: maxW,
maxHeight: maxH
});
} // end function adjustDimensions
function mediaCoverBounds() {
var mediaCover = $('.media-cover');
mediaCover.each(function() {
adjustDimensions($(this), '', '', '', '');
var mediaWrapper = $(this).parent();
var mediaWrapperWidth = mediaWrapper.width();
var mediaWrapperHeight = mediaWrapper.height();
var mediaCoverWidth = $(this).width();
var mediaCoverHeight = $(this).height();
var maxCoverWidth;
var maxCoverHeight;
if (mediaCoverWidth > mediaWrapperWidth && mediaCoverHeight > mediaWrapperHeight) {
if (mediaWrapperHeight/mediaWrapperWidth > mediaCoverHeight/mediaCoverWidth) {
maxCoverWidth = '';
maxCoverHeight = '100%';
} else {
maxCoverWidth = '100%';
maxCoverHeight = '';
} // end if
adjustDimensions($(this), '', '', maxCoverWidth, maxCoverHeight);
} else {
adjustDimensions($(this), '100%', '100%', '', '');
} // end if
}); // end mediaCover.each
} // end function mediaCoverBounds
Arama yaparken sayfanın yeniden boyutlandırılmasına dikkat edin:
mediaCoverBounds();
$(window).on('resize', function(){
mediaCoverBounds();
});
Sonra aşağıdaki CSS:
.media-cover-wrapper {
position: relative;
overflow: hidden;
}
.media-cover-wrapper .media-cover {
position: absolute;
z-index: -1;
top: 50%;
left: 50%;
-ms-transform: translate(-50%, -50%);
-moz-transform: translate(-50%, -50%);
-webkit-transform: translate(-50%, -50%);
transform: translate(-50%, -50%);
}
Evet, jQuery gerektirebilir, ancak oldukça iyi yanıt verir ve tam olarak arka plan boyutu gibi davranır: kapak ve bu ekstra SEO değerini elde etmek için görüntü ve / veya videolar üzerinde kullanabilirsiniz.