* {
    padding: 0;
    margin: 0;
    box-sizing: border-box;
}
main {
    position: relative;
    margin: 100px;
}
table {
    border-collapse: collapse;
}
table td {
    width: 50px;
    height: 50px;
    border: 1px solid #000;
}
#x-axis {
    position: absolute;
    top: -40px;
}
#x-axis span {
    display: inline-block;
    float: left;
    width: 50px;
    height: 30px;
    text-align: center;
}

#y-axis {
    position: absolute;
    left: -55px;
    top: 15px;
    width: 50px;
}
#y-axis span {
    display: inline-block;
    float: left;
    width: 50px;
    height: 50px;
    text-align: center;
}
#move {
    display: inline-block;
    position: absolute;
    top: 1px;
    left: 1px;
    width: 49px;
    height: 49px;
    border-bottom: 10px solid #266fff;
    background-color: #ff3b5b;
}
#square {
    margin-top: 20px;
}
input {
    width: 306px;
    margin-bottom: 10px;
}

/* 逆时针旋转 rotate360-270代表从向下位置转到向右位置 */
.rotate360-270 {
    animation-duration: 400ms;
    animation-name: rotate360-270;
    animation-fill-mode: forwards;
}
@keyframes rotate360-270 {
    from {
        -webkit-transform: rotate(360deg);
        -moz-transform: rotate(360deg);
        -ms-transform: rotate(360deg);
        -o-transform: rotate(360deg);
        transform: rotate(360deg);
    }
    to {
        -webkit-transform: rotate(270deg);
        -moz-transform: rotate(270deg);
        -ms-transform: rotate(270deg);
        -o-transform: rotate(270deg);
        transform: rotate(270deg);
    }
}
.rotate270-180 {
     animation-duration: 400ms;
     animation-name: rotate270-180;
     animation-fill-mode: forwards;
 }
@keyframes rotate270-180 {
    from {
        -webkit-transform: rotate(270deg);
        -moz-transform: rotate(270deg);
        -ms-transform: rotate(270deg);
        -o-transform: rotate(270deg);
        transform: rotate(270deg);
    }
    to {
        -webkit-transform: rotate(180deg);
        -moz-transform: rotate(180deg);
        -ms-transform: rotate(180deg);
        -o-transform: rotate(180deg);
        transform: rotate(180deg);
    }
}
.rotate180-90 {
    animation-duration: 400ms;
    animation-name: rotate180-90;
    animation-fill-mode: forwards;
}
@keyframes rotate180-90 {
    from {
        -webkit-transform: rotate(180deg);
        -moz-transform: rotate(180deg);
        -ms-transform: rotate(180deg);
        -o-transform: rotate(180deg);
        transform: rotate(180deg);
    }
    to {
        -webkit-transform: rotate(90deg);
        -moz-transform: rotate(90deg);
        -ms-transform: rotate(90deg);
        -o-transform: rotate(90deg);
        transform: rotate(90deg);
    }
}
.rotate90-0 {
    animation-duration: 400ms;
    animation-name: rotate90-0;
    animation-fill-mode: forwards;
}
@keyframes rotate90-0 {
    from {
        -webkit-transform: rotate(90deg);
        -moz-transform: rotate(90deg);
        -ms-transform: rotate(90deg);
        -o-transform: rotate(90deg);
        transform: rotate(90deg);
    }
    to {
        -webkit-transform: rotate(0deg);
        -moz-transform: rotate(0deg);
        -ms-transform: rotate(0deg);
        -o-transform: rotate(0deg);
        transform: rotate(0deg);
    }
}


/* 顺时针旋转 */
.rotate0-90 {
    animation-duration: 400ms;
    animation-name: rotate0-90;
    animation-fill-mode: forwards;
}
@keyframes rotate0-90 {
    from {
        -webkit-transform: rotate(0deg);
        -moz-transform: rotate(0deg);
        -ms-transform: rotate(0deg);
        -o-transform: rotate(0deg);
        transform: rotate(0deg);
    }
    to {
        -webkit-transform: rotate(90deg);
        -moz-transform: rotate(90deg);
        -ms-transform: rotate(90deg);
        -o-transform: rotate(90deg);
        transform: rotate(90deg);
    }
}
.rotate90-180 {
    animation-duration: 400ms;
    animation-name: rotate90-180;
    animation-fill-mode: forwards;
}
@keyframes rotate90-180 {
    from {
        -webkit-transform: rotate(90deg);
        -moz-transform: rotate(90deg);
        -ms-transform: rotate(90deg);
        -o-transform: rotate(90deg);
        transform: rotate(90deg);
    }
    to {
        -webkit-transform: rotate(180deg);
        -moz-transform: rotate(180deg);
        -ms-transform: rotate(180deg);
        -o-transform: rotate(180deg);
        transform: rotate(180deg);
    }
}
.rotate180-270 {
    animation-duration: 400ms;
    animation-name: rotate180-270;
    animation-fill-mode: forwards;
}
@keyframes rotate180-270 {
    from {
        -webkit-transform: rotate(180deg);
        -moz-transform: rotate(180deg);
        -ms-transform: rotate(180deg);
        -o-transform: rotate(180deg);
        transform: rotate(180deg);
    }
    to {
        -webkit-transform: rotate(270deg);
        -moz-transform: rotate(270deg);
        -ms-transform: rotate(270deg);
        -o-transform: rotate(270deg);
        transform: rotate(270deg);
    }
}
.rotate270-360 {
    animation-duration: 400ms;
    animation-name: rotate270-360;
    animation-fill-mode: forwards;
}
@keyframes rotate270-360 {
    from {
        -webkit-transform: rotate(270deg);
        -moz-transform: rotate(270deg);
        -ms-transform: rotate(270deg);
        -o-transform: rotate(270deg);
        transform: rotate(270deg);
    }
    to {
        -webkit-transform: rotate(360deg);
        -moz-transform: rotate(360deg);
        -ms-transform: rotate(360deg);
        -o-transform: rotate(360deg);
        transform: rotate(360deg);
    }
}


/* 旋转180度 */
.rotate180-0 {
    animation-duration: 400ms;
    animation-name: rotate180-0;
    animation-fill-mode: forwards;
}
@keyframes rotate180-0 {
    from {
        -webkit-transform: rotate(180deg);
        -moz-transform: rotate(180deg);
        -ms-transform: rotate(180deg);
        -o-transform: rotate(180deg);
        transform: rotate(180deg);
    }
    to {
        -webkit-transform: rotate(0deg);
        -moz-transform: rotate(0deg);
        -ms-transform: rotate(0deg);
        -o-transform: rotate(0deg);
        transform: rotate(0deg);
    }
}
.rotate0-180 {
    animation-duration: 400ms;
    animation-name: rotate0-180;
    animation-fill-mode: forwards;
}
@keyframes rotate0-180 {
    from {
        -webkit-transform: rotate(0deg);
        -moz-transform: rotate(0deg);
        -ms-transform: rotate(0deg);
        -o-transform: rotate(0deg);
        transform: rotate(0deg);
    }
    to {
        -webkit-transform: rotate(180deg);
        -moz-transform: rotate(180deg);
        -ms-transform: rotate(180deg);
        -o-transform: rotate(180deg);
        transform: rotate(180deg);
    }
}
.rotate90-270 {
    animation-duration: 400ms;
    animation-name: rotate90-270;
    animation-fill-mode: forwards;
}
@keyframes rotate90-270 {
    from {
        -webkit-transform: rotate(90deg);
        -moz-transform: rotate(90deg);
        -ms-transform: rotate(90deg);
        -o-transform: rotate(90deg);
        transform: rotate(90deg);
    }
    to {
        -webkit-transform: rotate(270deg);
        -moz-transform: rotate(270deg);
        -ms-transform: rotate(270deg);
        -o-transform: rotate(270deg);
        transform: rotate(270deg);
    }
}
.rotate270-90 {
    animation-duration: 400ms;
    animation-name: rotate270-90;
    animation-fill-mode: forwards;
}
@keyframes rotate270-90 {
    from {
        -webkit-transform: rotate(270deg);
        -moz-transform: rotate(270deg);
        -ms-transform: rotate(270deg);
        -o-transform: rotate(270deg);
        transform: rotate(270deg);
    }
    to {
        -webkit-transform: rotate(90deg);
        -moz-transform: rotate(90deg);
        -ms-transform: rotate(90deg);
        -o-transform: rotate(90deg);
        transform: rotate(90deg);
    }
}


