Это возможно, хотя и немного хлопотно:)
Во-первых, вам нужна общая точка отсчета (точка поворота), где должны быть привязаны оба перекошенных изображения / области.Поскольку ширина является переменной (отзывчивость и, возможно, берут на себя «ответственность» за всех пользователей;)), точка должна быть в середине страницы в определенной позиции y (я выбрал 300px).
Тогда нам нужен внешний контейнер, который будет использоваться как своего рода обтравочная маска (с использованием overflow:hidden
) и который будет немного повернут.Внутренний контейнер вращается вокруг той же точки, что и внешний (в точке x: 50%, y: 100% от себя), но затем в противоположном направлении, чтобы показать содержимое прямо.Содержимое внутреннего контейнера теперь будет отрезано перекошенным способом.Поскольку повернутый блок оставляет «дыры» в углах, мы должны увеличить внешний, чтобы быть безопасным (width:200%
страницы), и внутренний 50%
этого (поскольку он будет охватывать точную ширину страницы).
Теперь нам нужно увеличить внутренний контейнер, чтобы закрыть пустое пространство слева в левом нижнем углу.Таким образом, мы корректируем height
и соответственно меняем верхнюю координату transform-origin
, чтобы сохранить эту точку в центре.
Итак, теперь у нас есть фон страницы.Для содержимого мы создадим вторую комбинацию контейнеров внутри .contents
div, но скорректируем верхнее положение, чтобы учесть верхнее поле / отступ блока .contents
.И, наконец, мы устанавливаем overflow:hidden
и position:relative
для .contents
, чтобы отключить переполнение содержимого второй комбинации контейнера.
Итак, поехали!Внутренние контейнеры теперь могут быть заполнены необходимыми изображениями или любым другим фоном.Для правильного позиционирования я использую некоторые transform
s и position:fixed
/ position:absolute
в сочетании с left
/ top
/ bottom
, исправляя фоновый фон и позволяя фону содержимого прокручиваться вдольс остальной частью страницы.
Посмотрите на рабочий пример, который я сделал на jsFiddle
Бонус
ЕслиВы хотите другую форму или просто изображение с формой и прозрачным фоном, вращение и увеличение не нужны.Вы просто делаете так, чтобы оба фоновых контейнера имели одинаковую привязку / опору (при x = 50% и y = независимо от того, что вы выбрали в качестве нижней части изображения bg) и одинакового размера.Это делается путем масштабирования .contents
относительно ширины страницы, чтобы вы могли масштабировать фоновое изображение содержимого в соответствии с шириной страницы.
Вы уже догадались!Вот рабочий пример этого здесь