Метод border
выглядит зернистым в протестированных мною браузерах. Вот метод, использующий псевдоэлементы ::before
и ::after
и CSS transform: skew()
, который выглядит более плавным. Вы можете настроить углы по мере необходимости. При этом используется только один <div>
.
Демо: ![jsFiddle](https://i.stack.imgur.com/NI3c4.png)
Выход:
![output](https://i.stack.imgur.com/pABaX.png)
HTML:
<div class="quadrilateral"></div>
CSS:
.quadrilateral {
background-color: red;
height: 50px;
margin: 50px;
position: relative;
width: 300px;
}
.quadrilateral::before {
background-color: red;
content: '';
display: inline-block;
height: 61px;
position: absolute;
right: -3px;
top: -11px;
transform: skewX( -5deg );
-ms-transform: skewX( -5deg );
-webkit-transform: skewX( -5deg );
-o-transform: skewX( -5deg );
-moz-transform: skewX( -5deg );
width: 10px;
}
.quadrilateral::after {
background-color: red;
content: '';
display: inline-block;
height: 15px;
position: absolute;
top: -6px;
transform: skewY( -2deg );
-ms-transform: skewY( -2deg );
-webkit-transform: skewY( -2deg );
-o-transform: skewY( -2deg );
-moz-transform: skewY( -2deg );
width: 300px;
}