Разделы

Трансформация фотографии в обложку объемной книги средствами CSS

Пример:

Данный небольшой CSS-код создает эффект "книги на журнальном столике" (coffee table books). Так называют книги, которые будут идеально смотреться на журнальном столике, а в нашем случае на странице сайта.

Для реализации этого эффекта нужно просто обернуть фотографию в один div с классом book

HTML:

<div class="book">
<img src="https://tjan.ru/demo/all/images/Leonid_Afremov.jpg" alt="" />
</div>

CSS:

.book {
width: 18.5em;
height: 23.0991em;
margin-top: -4.4em;
position: relative;
margin-left: auto;
margin-right: auto;
transform: perspective(60em) rotateX(58deg) rotateZ(-34deg) skewY(-7deg);
box-shadow: -1.4em 1.7em 0.3em -0.3em rgba(0,0,0,0.8), -1.6em 1.8em 0.9em -0.2em rgba(0,0,0,0.5), 0.3em 1.9em 1.3em rgba(0,0,0,0.3);
border-top-right-radius: 0.4em;
}
.book img {
border-top-right-radius: 0.4em;
box-sizing: border-box;
width: 100%;
clip: rect(0em, 18.5em, 23.1em, 0em);
display: block;
position: absolute;
filter: saturate(90%);
}
.book:before,
.book:after {
content: '';
position: absolute;
top: 0;
}
.book:before {
width: 105%;
height: 105%;
left: -5%;
z-index: -1;
background-repeat: no-repeat;
background-image: linear-gradient(115deg, transparent 2.8%, #3f3f3f 3%, #3f3f3f 16%, transparent 16%), linear-gradient(125deg, transparent 10%, #3f3f3f 10%, #3f3f3f 17%, #222 46.8%, transparent 47%), linear-gradient(125deg, transparent 46%, rgba(0,0,0,0.5) 46.5%, rgba(0,0,0,0.25) 49%, transparent 53%), linear-gradient(to right, #444, #666), linear-gradient(#444, #444), linear-gradient(140deg, transparent 45%, #eee 45%, #ccc 96.8%, rgba(170,170,170,0) 97%);
background-size: 100% 100%, 100% 100%, 100% 100%, 100% 0.4em, 94% 0.2em, 100% 100%;
background-position: 0 0, 0 0, 0 0, 0 95.8%, 0 100%, 0 0;
}
.book:after {
width: 100%;
height: 100%;
background-repeat: no-repeat;
background-image: linear-gradient(to right, transparent 2%, rgba(0,0,0,0.1) 3%, rgba(0,0,0,0.1) 4%, transparent 5%), linear-gradient(-50deg, rgba(0,0,0,0.1) 20%, transparent 100%), linear-gradient(-50deg, rgba(0,0,0,0.2) 20%, transparent 100%), linear-gradient(to bottom, rgba(0,0,0,0.1) 20%, transparent 100%), linear-gradient(to bottom, rgba(0,0,0,0.1) 20%, transparent 100%);
background-size: 100% 100%, 2% 20%, 1% 20%, 2% 20%, 1% 20%;
background-position: 0 0, 2.2% 100%, 3% 100%, 2.2% 0, 3% 0;
}


QR-код
© 2024. Лайфхаки для админа и не только
Наверх