2016-12-28 4 views
2

Например, у меня есть такая картина: Default imageCSS3 сгибание/эффект перспективы

И мне нужно, чтобы сделать это так с CSS3. С видом перспективы сверху (область с красной рамкой): Image with perspective

Можно ли сделать такой эффект, используя только 1 стиль изображения и CSS3?

+0

Вы должны использовать проекцию для этого, чтобы работать, что об использовании уже существующих библиотеки, такие как d3.js? Он имеет различные прогнозы, которые помогут вам решить проблему искаженной земельной площади вокруг полярных регионов. Чистое исправление CSS является лишь обходным решением и решением для стоп-зазора. – Terry

ответ

2

Я установил div с вашим изображением в качестве фона.

На псевдоэлементе, на том же фоне, и это псевдо имеет преобразование вращения и перспективы.

Другой псевдо, в том же положении, чтобы скрыть верхнюю часть исходного изображения

.test { 
 
    width: 600px; 
 
    height: 230px; 
 
    border: solid 1px red; 
 
    background-image: url(https://i.stack.imgur.com/wQ1Bp.png); 
 
    background-size: 600px 230px; 
 
    position: relative; 
 
} 
 
.test:after, 
 
.test:before { 
 
    content: ""; 
 
    width: 100%; 
 
    height: 30%; 
 
    top: 0px; 
 
    position: absolute; 
 
} 
 
.test:before { 
 
    background-color: white; 
 
} 
 
.test:after { 
 
    background-image: inherit; 
 
    background-size: inherit; 
 
    border: solid 1px green; 
 
    transform: perspective(400px) rotateX(50deg); 
 
    transform-origin: center bottom; 
 
}
<div class="test"></div>

Смежные вопросы