Я пытаюсь воспроизвести графический дизайн, используя css, но мне не удалось ответить, я могу получить статическую форму, но с крошечными дефектами (из-за соединения двух элементов).
Это графический дизайн:
![enter image description here](https://i.stack.imgur.com/GiqNE.jpg)
Я предпочитаю это немного более наклонно, как: skew(-40deg)
. Но идея состоит в том, чтобы иметь внутреннюю закругленную границу, которая окутывает эту кнопку, как на изображении.
HTML-код прост:
<header>
<nav></nav>
</header>
CSS:
body > header > nav {
display: flex;
align-items: flex-end;
justify-content: center;
width: 100vw;
height: 90px;
padding: 10px 0;
text-align: center;
z-index: 1
}
body > header > nav::before {
content: '';
position: absolute;
top: 0; left: 0;
width: 80vw; height: 100%;
background-color: rgb(147, 147, 147);
border-bottom-right-radius: 15px;
transform: skew(-40deg);
transform-origin: 100% 0%;
}
body > header > nav::after {
content: '';
position: absolute;
top: 0; right: 0;
width: 28.7%;
border-top: 7px solid rgb(147, 147, 147);
border-left: 50px solid rgb(147, 147, 147);
height: 75px;
border-top-left-radius: 75px;
transform: skew(-33deg);
}
Я подготовил https://jsfiddle.net/uj4qsf37/
Есть ли более чистый способ сделать это? Например, не нужно использовать два элемента? С одним элементом было бы легко сделать его отзывчивым.