html-css11 表的预备知识&钟表&正方体旋转& 缩放&变形位置

表的预备知识

<!DOCTYPE html>
<html lang="en">
<head>
    <meta charset="UTF-8">
    <meta http-equiv="X-UA-Compatible" content="IE=edge">
    <meta name="viewport" content="width=device-width, initial-scale=1.0">
    <title>对于表的一些预备知识</title>
</head>
<style>
*{
    margin: 0;
    padding: 0;
}

.sec-wrapper{
    width: 500px;
    height: 500px;
    background-color: white;
    /*秒针本身并不转,转的是里面的容器*/
    animation: run 60s;
}

.sec{
    height: 250px;
    width: 4px;
    background-color: brown;
    margin: 0 auto;

    /* animation: run 60s;/*但是现在是绕着中心转而不是绕着杆的一头转 */
}


@keyframes run{
    from{
        transform: rotateZ(0);
    }

    to{
        transform: rotateZ(360deg);
    }
}

</style>

<body>
   <!-- 在外面加一个父元素,让父元素转-->
    <div class="sec-wrapper">    
        <div class="sec"></div></div>

</body>
</html>

钟表

<!DOCTYPE html>
<html lang="en">

<head>
    <meta charset="UTF-8">
    <meta http-equiv="X-UA-Compatible" content="IE=edge">
    <meta name="viewport" content="width=device-width, initial-scale=1.0">
    <title>Document</title>
</head>
<style>
    * {
        margin: 0;
        padding: 0;
    }

    .clock {
        width: 500px;
        height: 500px;
        background-color: antiquewhite;
        margin: 0 auto;
        margin-top: 100px;
        border-radius: 50%;
        /* border: 5px solid black; */
        position: relative;
        background-image: url(./picture/clock.png);
        background-size: cover;
    }

    .clock>div {
        /*让钟表里面的所有元素居中*/
        position: absolute;
        top: 0;
        bottom: 0;
        left: 0;
        right: 0;
        margin: auto;
    }

    .hour-wrapper {
        width: 60%;
        height: 60%;
        /* background-color: aqua; */
        animation: run 21600s steps(12) infinite;

    }

    .hour {
        height: 50%;
        width: 6px;
        background-color: black;
        margin: 0 auto;
    }

    /*设置分针*/
    .minute-wrapper {
        width: 70%;
        height: 70%;
        /* background-color: aqua;      */
        animation: run 3600s steps(60) infinite;
    }

    .minute {
        height: 50%;
        width: 4px;
        background-color: black;
        margin: 0 auto;
    }

    .second-wrapper {
        width: 85%;
        height: 85%;
        /*加上steps就是一下以下的感觉,不加就是很流畅的感觉*/
        animation: run 60s steps(60) infinite;
    }

    .second {
        height: 50%;
        width: 2px;
        background-color: red;
        margin: 0 auto;
    }

    /*旋转的关键帧*/
    @keyframes run {
        from {
            transform: rotateZ(0);
        }

        to {
            transform: rotateZ(360deg);
        }
    }
</style>

<body>
    <!--创建表的容器-->
    <div class="clock">
        <!--创建时针的容器-->
        <div class="hour-wrapper">
            <div class="hour"></div>
        </div>
        <!--创建分针的容器-->
        <div class="minute-wrapper">
            <div class="minute"></div>
        </div>
        <!--创建秒针的容器-->
        <div class="second-wrapper">
            <div class="second"></div>
        </div>
    </div>
</body>

</html>

正方体旋转

我觉得这个地方可以用手比量一下,本来两张图片叠在一起,一个沿Y轴+90度,一个-90度,然后他俩是立着的,这个时候呢,左边右边这个方向就是他们的Z轴,也就是正对着照片的那一面是Z轴

<!DOCTYPE html>
<html lang="en">
<head>
    <meta charset="UTF-8">
    <meta http-equiv="X-UA-Compatible" content="IE=edge">
    <meta name="viewport" content="width=device-width, initial-scale=1.0">
    <title>正方体 复仇者联盟</title>
</head>

<style>

html{
    perspective: 800px;
}

.cube{
    width: 200px;
    height: 200px;
    background-color: rgb(85, 245, 170);
    margin: 100px auto;
    /*设置3D变形效果*/
    transform-style: preserve-3d;
transform: rotateX(45deg) rotateZ(45deg);
animation: run 10s infinite linear;
}

.cube>div{
    width: 200px;
    height: 200px;
   /*为图片设置透明效果*/
   opacity: 0.7;
   /*让照片脱离文档流,叠在一起*/
   position:absolute;
}
/*这个时候两张图片并没有挨在一起,我们可以设置*/
img{
    vertical-align: top;
}

.box1{
    transform: rotateY(90deg) translateZ(100px);
    /*或者说这样也是对的
    要分辨一下,转着账图片是先平移了还是先转方向了
     transform:translateX(100px) rotateY(90deg) ;*/
   
}
.box2{
    transform: rotateY(-90deg) translateZ(100px);
}

.box3{
    transform: rotateX(90deg) translateZ(100px);
}
.box4{
    transform: rotateX(-90deg) translateZ(100px);
}

.box5{
    transform:rotateY(0) translateZ(100px);
}

.box6{
    transform:rotateY(180deg) translateZ(100px);
}


@keyframes run {
    
    from{
        transform: rotateX(0) rotateZ(0);
    }

    to{
        transform: rotateX(360deg) rotateZ(1turn);
    }
}
</style>

<body>
    <!--创建外部容器-->
    <div class="cube">
<div class="box1">
    <img src="./picture/fu (1).png" alt="">
</div>
<div class="box2">
    <img src="./picture/fu (2).png" alt="">
</div>
<div class="box3">
    <img src="./picture/fu (3).png" alt="">
</div>
<div class="box4">
    <img src="./picture/fu (4).png" alt="">
</div><div class="box5">
    <img src="./picture/fu (5).png" alt="">
</div>
<div class="box6">
    <img src="./picture/fu (6).png" alt="">
</div>

    </div>
</body>
</html>

缩放&变形位置

<!DOCTYPE html>
<html lang="en">

<head>
    <meta charset="UTF-8">
    <meta http-equiv="X-UA-Compatible" content="IE=edge">
    <meta name="viewport" content="width=device-width, initial-scale=1.0">
    <title>Document</title>
</head>
<style>
    .box1 {
        width: 200px;
        height: 200px;
        background-color: bisque;
        transition: 2s;
        /*变形的起始点,
        /* transform-origin:center; */
        transform-origin: 0 0;
    }


    .box1:hover {
        /*
        对元素进行缩放的
        scaleX()水平方向的缩放
        scaleY()垂直方向的缩放
        transform: scale(2);
        transform: scale(.3);
        */
        transform: scale(2);
    }

    .img-wrapper {
        width: 200px;
        height: 200px;
        border: 1px solid red;
        /*放大之后,会有多余的部分,把它裁掉*/
        overflow: hidden;
    }

    img {
        transition: all .5s;
    }

    .img-wrapper:hover img {
        transform: scale(1.2);
    }
</style>

<body>
    <div class="box1"></div>
    <div class="img-wrapper">
        <img src="./picture/fu (2).png" width="100%">

    </div>

</body>

</html>
  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值