Изображение внутри параллелограмма

У меня есть несколько изображений, которые должны быть в форме параллелограмма следующим образом:

parallelogram filled with image

Они должны быть заключены в элементы div, в карусели и ссылки на видеостраницы. Однако использование обычных изображений вызывает проблемы с ограничивающим полем со ссылками из-за прозрачных областей.

Какое свойство CSS используется для преобразования изображений в формы параллелограмма, как в приведенном выше примере?

Ответ 1

Существует метод в преобразовании объектов перекоса. Единственное, что вам придется искать, это то, что все в div тоже будет искажать. Поэтому вы должны применить его дважды. Однажды, чтобы перекосить div на определенное количество градусов, а затем снова перекосить изображение внутри назад в противоположном направлении.

Например, если вы делаете это с div: transform: skewX(10deg);

Вам нужно сделать это на картинке: transform: skewX(-10deg);

Вот ссылка, чтобы прочитать еще немного о transform - потому что там больше, чем кажется на первый взгляд.

Ответ 2

Поскольку я неправильно понял OP, я отредактирую ответ со скрипкой. Да skew полностью перекосит div, и это тоже исказит изображение. Так что просто "отрежьте" изображение с противоположным наклоном:

.wrapper {
  padding: 100px;
}
.skewed {
  width: 120px;
  height: 120px;
  -webkit-transform: skewX(-50deg);
  -ms-transform: skewX(-50deg);
  transform: skewX(-50deg);
  overflow: hidden;
  text-align: center;
  position: relative;
}
.skewed img {
  -webkit-transform: skewX(50deg);
  -ms-transform: skewX(50deg);
  transform: skewX(50deg);
  position: absolute;
  top: -87px;
  left: -90px;
}
<div class="wrapper">
  <div class="skewed">
    <img src="http://dab1nmslvvntp.cloudfront.net/wp-content/uploads/2009/03/car.jpg" alt="car" />
  </div>
</div>

Ответ 3

Вы можете достичь параллелограмма с изображением и поддерживать границы формы ссылки с помощью как минимум двух разных подходов:

Преобразования CSS

С одним div и псевдоэлементом. Изображение добавляется в качестве фона псевдоэлемента. Div перекошен, а псевдоэлемент не подвержен обработке:

a{
  display:block;
  position:relative;
  width:20%;
  padding-bottom:25%;
  transform-origin:0 100%;
  transform:skewX(-30deg) translatez(1px);
  overflow:hidden;
}
a:before{
  content:'';
  position:absolute;
  width:175%; height:100%;
  background-image:url('http://i.imgur.com/kreZqnx.jpg');
  background-size:cover;
  background-position:center;
  transform-origin:inherit;
  transform:skewX(30deg);
}
<a href="#"></a>