偶然在微博上看到用css写一个七巧板,正好也有一些源代码,于是就试着敲了敲。
主要是利用了css3的transform,实现平移,旋转,变形,直接用看到的代码敲出来之后有些问题,因为宽度上下面绿色的三角形和右边蓝色的三角形没有做限制,所以我做出来看到的效果是这样的:
之后自己做了稍微的调整,调整之后的效果是这样的:
这里直接将板子的位置放在了浏览器的左上角,利用了border-top和border-right来进行位置的控制,下面是代码:
html代码:
<!DOCTYPE html>
<html>
<head>
<meta charset="utf-8">
<title>Css打造一个静态七巧板</title>
<link rel="stylesheet" type="text/css" href="test21.css">
</head>
<body>
<div class="wrap">
<div class="t t1 t11"></div>
<div class="t t2 t22"></div>
<div class="t t3 t33"></div>
<div class="t t4 t44"></div>
<div class="t t5 t55"></div>
<div class="t t6 t66"></div>
<div class="t t7 t77"></div>
</div>
</body>
</html>
Css代码:
.warp{
position: relative;
width: 300px;
height: 400px;
} .t{
position: absolute;
top: 0;
left: 0;
right: 0;
bottom: 0;
transform-origin:0 0;
}
.t1{
border-top: 212px solid red;
border-right: 212px solid transparent;
transform:translate(150px,150px) rotate(-135deg);
}
.t2{
border-top: 212px solid #FADF17;
border-right: 212px solid transparent;
transform:translate(150px,150px) rotate(135deg);
}
.t3{
width: 106px;
height: 106px;
background: #C96798;
border-left: 0px solid transparent;
transform:translate(150px,150px) rotate(45deg); }
.t4{
width: 106px;
border-top: 106px solid #00bdd0;
border-right: 106px solid transparent;
transform:translate(150px,150px) rotate(-45deg);
}
.t5{
width: 0px;
border-top: 106px solid #5dbe79;
border-right: 106px solid transparent;
transform:translate(75px,225px) rotate(45deg);
}
.t6{
width: 150px;
height: 75px;
transform:translate(300px) rotate(90deg) skew(45deg);
background: #ffdd01;
}
.t7{
width: 0px;
border-top: 150px solid #0117bf;
border-right: 150px solid transparent;
transform:translate(300px,300px) rotate(180deg);
}