我正在尝试制作类似于平行四边形的形状,但没有右侧的角度。所以它会在右侧保持直线上下,但左侧将保持其角度。这是一个小提琴:http://jsfiddle.net/2hj88xts/
CSS:
#parallelogram {
width: 250px;
height: 100px;
transform: skew(-15deg);
background: red;
}
答案 0 :(得分:5)
您可以尝试使用border-left
作为颜色transparent
并完全放弃*-transform
。这需要CSS更改,但不需要额外的HTML标记:
当前角度:
#parallelogram {
width: 250px;
height: 0;
border-bottom: 100px solid red;
border-left: 30px solid transparent;
margin-left: 10px;
}
<div id="parallelogram"></div>
要调整左角,只需调整边框左侧像素数量即可。像素量越大,角度越浅。像素量越小,角度越陡。
浅角:
#parallelogram {
width: 250px;
height: 0;
border-bottom: 100px solid red;
border-left: 100px solid transparent;
margin-left: 10px;
}
<div id="parallelogram"></div>
陡峭的角度:
#parallelogram {
width: 250px;
height: 0;
border-bottom: 100px solid red;
border-left: 15px solid transparent;
margin-left: 10px;
}
<div id="parallelogram"></div>
答案 1 :(得分:5)
使用pseudo element
:
#parallelogram {
width: 250px;
height: 100px;
background: red;
margin-left: 100px;
position:relative;
}
#parallelogram:before{
content: '';
position:absolute;
width: 0;
height: 0;
border-style: solid;
border-width: 0 0 100px 40px;
border-color: transparent transparent red transparent;
left: -40px;
}
&#13;
<div id="parallelogram"></div>
&#13;
<强>更新强>
如果您喜欢living on the edge,请尝试clip-path
:
#parallelogram{
width: 250px;
height: 100px;
background: red;
-webkit-clip-path: polygon(29% 0, 100% 0, 100% 100%, 0% 100%);
clip-path: polygon(29% 0, 100% 0, 100% 100%, 0% 100%);
}
&#13;
<div id="parallelogram"></div>
&#13;
答案 2 :(得分:2)
好的,所以将两个divs
组合在一起并从右侧div
移除效果,然后将其向左拉以重叠左侧div
的边缘。做这样的事情:
#parallelogram {
width: 250px;
height: 100px;
-webkit-transform: skew(-15deg );
-moz-transform: skew(-15deg);
-o-transform: skew(-15deg);
background: red;
margin-left:10px;
display:inline-block;
}
#end {
width: 250px;
height: 100px;
background: red;
display:inline-block;
margin-left:-20px;
}
<div>
<div id="parallelogram">
</div>
<div id="end">
</div>
</div>
答案 3 :(得分:2)
这是一个没有任何CSS的svg
解决方案。
<svg>
<path d="M60,0 L250,0 L250,100 20,100z" fill="red" />
</svg>