Размещение изображений в качестве фоновых изображений позволит использовать background-size: cover
и разместить их в любом размере контейнера.
Использование псевдоэлементов, таких как ::before
, является лишь способом очистить код HTML с элементами, которые в основном используются для стилизации.
Любые другие пояснения, приведенные ниже в коде в виде комментариев.
html, body {
padding: 0px; /* remove default spacing */
margin: 0px;
}
.wrapper {
position: relative;
min-width: 100vw;
min-height: 100vh; /* min lets the element span beyond the page, if necessary. */
/* didn't find image */
/* background: url('https://webhostingvirtualdedicatedservers.com/files/2012/09/Web-server.png'); */
background: url('https://picsum.photos/200/300');
}
.wrapper, .wrapper::before {
box-sizing: border-box; /* needed to include border size in width and height */
border: 1px solid blue;
background-repeat: none;
background-size: cover;
}
.wrapper::before {
content: '';
position: absolute;
width: 25vw;
height: 25vw; /* make it squarish */
left: 50%;
top: 50%;
/* move element negative 50% of it's own size on both x and y coordinate */
transform: translate(-50%, -50%);
border-color: red;
/* background: url('http://loosechange.co.za/wp-content/uploads/2012/06/Personal-Discount-10-lg.jpg'); */
background: url('https://picsum.photos/200/200');
}
<div class="wrapper">
</div>