[英]Trapezoid shape with angled top and right side
基本上是一个弯曲的div:
那么有可能只使用CSS而没有图像吗?
好吧...我是这种形状的最大怀疑者,但似乎O_o
<div class="shape one"></div>
<div class="shape two"></div>
<div class="shape three"></div>
.shape
{
background:red;
float:left;
}
.one
{
border-width:0px;
border-bottom:10px solid red;
border-left:200px solid #fff;
width:0px;
}
.two
{
width:200px;
height:40px;
clear:left;
}
.three
{
border-width:0px;
border-top:50px solid red;
border-right:10px solid #fff;
width:0px;
margin-top:-10px;
}
在我测试的浏览器中, border
方法看起来很粗糙。 这是使用::before
和::after
伪元素以及CSS transform: skew()
看起来更平滑。 您可以根据需要调整角度。 这仅使用一个<div>
。
<div class="quadrilateral"></div>
.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;
}
考虑使用SVG代替CSS。 所有主要的浏览器都支持它,并且该形状在SVG格式中将非常小。 它也将在您的DOM树中,因此您可以在其上绑定事件。
声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.