如何用css3 transform写出梯形

html-css022

如何用css3 transform写出梯形,第1张

transfrom这个旋转元素的,无法绘制梯形=-=

可以用选择器来实现梯形,代码如下。

<!DOCTYPE html>

<html>

<head>

<meta charset="utf8">

<title>555</title>

<style type="text/css">

dl dd { width:30pxheight:30pxbackground:#000}

dl dd:nth-child(1) { width:30px}

dl dd:nth-child(2) { width:60px}

dl dd:nth-child(3) { width:90px}

dl dd:nth-child(4) { width:120px}

dl dd:nth-child(5) { width:150px}

dl dd:nth-child(6) { width:180px}

dl dd:nth-child(7) { width:210px}

dl dd:nth-child(8) { width:240px}

</style>

<script type="text/JavaScript">

</script>

</head>

<body>

<dl>

<dd></dd>

<dd></dd>

<dd></dd>

<dd></dd>

<dd></dd>

<dd></dd>

<dd></dd>

<dd></dd>

</dl>

</body>

</html>

这就是一个梯形

<div style="width:200pxheight:0border-bottom: 100px solid pinkborder-top:0border-right: 100px solid transparentborder-left: 100px solid transparent"></div>

上下左右4条边,最关键的一点:每两条边的相交处是斜线的相交的。

如果不渲染成斜线,那么写浏览器内核解析css的程序员要纠结了:上边该压着左边线还是右边线,谁压谁都不合理啊,最简单的是弄成斜线等分,还不必去写判断谁该压着谁的程序代码。

于是,就给用边框创造梯形、三角形留下了空间,其他三条边颜色设置为透明或none,剩下的就是梯形或三角了,至于直角梯形,第6个div是,观察第4个div的 none 起了什么作用,再看div6,相信你就明白了。上图的代码:

<div id="div1">1</div>

<div id="div2">2</div>

<div id="div3">3</div>

<div id="div4">4</div>

<div id="div5">5</div>

<div id="div6">6</div>

<style>

div{

    float: leftmargin: 10px

    border-top: 30px red solid

    border-bottom: 30px blue solid

    border-left: 30px yellow solid

    border-right: 30px green solid

}

#div1{width: 0height: 0}

#div2{width: 30pxheight: 0}

#div3{width: 30pxheight: 30px}

#div4{

    width: 30px

    border-top: none

}

#div5{

    border-top: transparent 30px solid

    border-bottom: 30px blue solid

    border-left: transparent 30px solid

    border-right: transparent 30px solid

}

#div6{

    width: 50px height: 0

    border-top: none

    border-bottom: 40px blue solid

    border-left: transparent 30px solid

    border-right: none

}

</style>