CSS3 перекосить все углы

Я пытаюсь исказить мои пункты меню, как это:

Я нашел несколько решений, которые позволят мне наклонить все 4 угла, но они используют решение с верхом границы, в то время как мне нужно использовать решение с фоновым изображением из-за градиента.

Кто-нибудь знает, как это сделать?

2 ответа

Невозможно свободно перемещать каждый угол, но вы можете комбинировать skew с rotate а также transform-origin создать много разных эффектов. Вот демонстрация чего-то похожего на картинку, которой вы поделились.

Если вам нужно что-то более сложное, лучше всего использовать SVG.

Вы можете построить его с отдельным градиентом для каждой зоны

div {
    width: 400px;
    height: 200px;
    background-image: linear-gradient(6deg, blue 19%, transparent 10%),
        linear-gradient(80deg, green 12%, transparent 10%),
        linear-gradient(175deg, red 18%, transparent 10%),
        linear-gradient(275deg, yellow 18%, transparent 10%),
        linear-gradient(6deg, lightblue 21%, transparent 10%),
        linear-gradient(80deg, lightgreen 13%, transparent 10%),
        linear-gradient(175deg, lightcoral 21%, transparent 10%),
        linear-gradient(275deg, lightyellow 19%, transparent 10%);
}

демонстрация

Другие вопросы по тегам