#html #css #css3 #html5 #вёрстка
Я пытаюсь создать «перспективный макет» с использованием CSS. Существует множество учебников о том, как добиться этого с помощью 3D-слоев в Photoshop, но я бы хотел сделать это с помощью CSS. Вот пример того, чего я пытаюсь получить: А вот код (с использованием необработанного изображения https://i.imgur.com/foDEYpB.png): #perspective { width: 400px; height: 500px; position: absolute; background-image: url("https://i.imgur.com/foDEYpB.png"); background-repeat: no-repeat; background-size: cover; top: 50%; left: 50%; margin-left: -200px; margin-top: -250px; transform: rotate3d(360, 120, -90, 60deg) rotateZ(-30deg); box-shadow: -15px 15px 20px rgba(0, 0, 0, 0.5); } Я довольно близок к решению, но не уверен, как добиться визуального представления «глубины» или «высоты». Это когда изображение выглядит приподнятым. Кругом обведено характерное место, упомянутой «глубины», где изображение повторяется по сторонам:
Ответы
Ответ 1
Попробуйте добавить три типа изображений для создания 3D-эффектов. Используйте свойство transform с вращением для изображений, чтобы получить желаемый результат. Ссылка на codepen. .perspective { position: relative; width: 400px; height: 500px; transform-style: preserve-3d; transition: all 500ms ease-in; transform: rotateY(20deg) rotateX(60deg) rotateZ(-10deg); transform: rotateY(15deg) rotateX(50deg) rotateZ(-15deg); box-shadow: -40px 80px 80px -10px rgba(0, 0, 0, 0.7); cursor: pointer; margin-right: 30px; display: inline-block; margin-left: 30%; } .perspective img { position: absolute; top: 0px; left: 0px; width: 400px; height: 500px; transform: translateZ(16px); } .bottom, .left { position: absolute; width: 400px; height: 500px; display: block; transition: all 1s linear; overflow: hidden; border-radius: 3px; transform: translateZ(16px); } .left { transform: rotateY(270deg) translateX(-1px); transform-origin: center left; width: 18px; } .bottom { transform: rotateX(90deg) translateY(15px) translateZ(-480px); transform-origin: bottom center; height: 18px; } .bottom img { transform: rotateX(180deg); width: 100%; height: 500px; left: 0px; }
Комментариев нет:
Отправить комментарий