Day08 CSS

简介: CSS
过渡
<!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>

    <style>

        * {
            margin: 0;
            padding: 0;
        }

        .box1 {
            width: 500px;
            height: 500px;
            background-color: gray;
        }

        .box2 {
            width: 100px;
            height: 100px;
            background-color: aqua;
            transition: all 2s;
            /* 
                过渡(transition):
                    通过过渡可以指定一个属性发生变化时的切换方式
                    过渡必须是从一个有效值向另外一个有效值进行过渡

                    transition-property
                        指定要执行过渡的属性: 
                            width,heigt,...(多个属性用,号分开;能计算的属性)
                            all(代表所有属性)

                    transition-duration
                        指定过渡效果的持续时间
                        时间单位:s 和 ms , 1s = 1000ms

                    transition-timing-function
                        过渡的时序函数
                        指定过渡的执行方式
                            ease 默认值,慢速开始,先加速后减速
                            linear 匀速
                            ease-in 加速运动
                            ease-out 减速运动
                            ease-in-out 先加速后减速
                            cubic-bezier() 来指定时序函数
                                称为三次贝塞尔曲线,主要是生成速度曲线的函数
                                网址:https://cubic-bezier.com/
                                transition-timing-function: cubic-bezier(0,0,1,1); 表示linear匀速
                            step()
                                 分步执行过渡效果
                                 step(2) 表示分两步执行过渡

                                 可以设置第二个值
                                 step(步数,start/end)
                                    start 在时间开始时执行过渡 
                                    end 在时间结束时执行过渡(默认值)

                    transition-delay
                        过渡效果的延迟,等待一段时间后才执行过渡
                        时间单位: s 

                    transition 过渡效果的简写属性,可以设置过渡效果的所有属性
                        如果要设置延迟,设置的两个时间中第一个时间是持续效果

                    
            */

        }

        .box1:hover .box2 {
            width: 200px;
            height: 200px;
        }


    </style>


</head>
<body>

    <div class="box1">
        <div class="box2">

        </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>

    <style>

        .box1 {
            width: 200px;
            height: 200px;
            /* 
                通过渐变可以设置一些复杂的背景颜色,可以实现从一个颜色向其他颜色过滤的效果
                渐变就是图片,需要通过background-image来设置


                linear-gradient
                    线性渐变,颜色沿着一条直线发生变化
                    可以指定一个渐变的方向
                        to left
                        to right
                        to top 
                        to bottom
                        deg 表示度数
                        turn 表示圈
                    渐变可以指定多个颜色,默认情况下平均分布
                    在颜色后面可以指定大小来设置颜色的分布大小

                repeating-linear-gradient
                    可以平铺的线性渐变

            */
            background-image: linear-gradient(to left,red 50px,yellow);
        }

        .box2 {
            width: 200px;
            height: 200px;
            
            /* 
                radial-gradient
                    径向渐变(放射性效果)
                    默认情况下径向渐变的形状根据元素的形状来计算的
                    正方形 -> 圆形
                    长方形 -> 椭圆形

                    也可以手动指定径向渐变的大小

                    radial-gradient(大小 at 位置, 颜色 位置, ...)
                        大小
                            circle 圆形
                            ellipse 椭圆形
                            elosest-side 近边
                            closest-corner 近角
                            farthest-side 远边
                            farthest-corner 远角
                        位置
                            left right top bottom center


            */
            background-image: radial-gradient(50px 50px at center center,red,yellow);
        }

    </style>

</head>
<body>
    
    <div class="box1">

    </div>

    <div class="box2">

    </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>

    <style>

        * {
            margin: 0;
            padding: 0;
        }

        .box1 {
            width: 500px;
            height: 500px;
            background-color: gray;
        }

        .box2 {
            width: 100px;
            height: 100px;
            background-color: aqua;
            
            /* 
                设置动画
                    使用animation-name属性,要对当前元素生效的关键帧的名字(动画)
            */
            animation-name: test;
            /* 
                动画的执行时间
            */
            animation-duration: 2s;
            /* 
                动画的延迟时间
            */
            animation-delay: 2s;
            /* 
                动画执行的函数
            */
            animation-timing-function: linear;
            /* 
                动画执行的次数
            */
            animation-iteration-count: 2;
            /* 
                动画的运行方向
                    normal 默认值 从from到to
                    reverse 从to到from
                    alternate 从from到to 重复执行时 反向执行
                    alternate-reverse 从to到from 重复执行时 反向执行
            */
            animation-direction: normal;
            /* 
                动画的播放状态
                    running 默认值 动画执行
                    paused 动画暂停
            */
            animation-play-state: running;
            /* 
                动画的填充模式
                    none 默认值 动画执行完元素返回到原来的位置
                    forwards 动画执行完元素停留在动画结束的位置
                    backwards 动画延时等待时元素就会处于开始位置
                    both 结合 forwards 和 backwards
            */
            animation-fill-mode: both;

            /* 
                animation 动画简写属性,可以设置所有的动画属性
            */

        }

        
        /* 
            动画:
                动画和过渡类型,都是可以实现一些动态的效果
                不同的是过渡需要在某个属性发生变化时才会触发
                而动画可以自动触发动态效果

                设置动画效果,必须要先设置一个关键帧,关键帧设置了动画执行每个步骤

        */
        /* 
            @keyframes 关键帧,后面表示这个关键帧的名字(test)
        */
        @keyframes test {
            
            /* 
                from表示动画的开始位置
                    可以使用%
            */
            from{
                margin-left: 0;
            }

            /* 
                to表示动画的结束位置
                    可以使用%
            */
            to{
                margin-left: 400px;
            }

        }


    </style>


</head>
<body>

    <div class="box1">
        <div class="box2">

        </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>

    <style>

        .box1 {
            width: 100px;
            height: 100px;
            background-color: aquamarine;
            margin: 0 auto;
            margin-top: 100px;

            /* 
                变形:
                    指通过CSS来改变元素的形状或者位置
                    变形不会影响页面的布局

                    通过transform来设置元素的变形效果

                    平移:
                        translateX() 沿着X轴方向平移
                        translateY() 沿着Y轴方向平移
                        translateZ() 沿着Z轴方向平移
                            平移元素,百分比是相对于自身计算的
                    
                    通过平移可以设置鼠标移动到某个元素上时的悬浮移动效果

            */
            transform: translate(50%);

        }


        .box2 {
            width: 100px;
            height: 100px;
            background-color: gray;
            margin: 0 auto;
        }

        body {
            /* 设置当前网页的视距 */
            perspective: 800px;
        }

        .box3 {
            width: 100px;
            height: 100px;
            background-color: gray;
            margin: 0 auto;
            
            transform: 2s;
        }

        body:hover .box3 {
            /* 
                Z轴平移:
                    调整元素在Z轴的位置
                    正常情况就是调整元素和人眼之间的距离,距离越大,元素离人越近
                    Z轴平移属于立体效果(近大远小),默认情况下网页不支持透视(需要设置网页的视距)
            */
            transform: translateZ(100px);
        }

        .box4 {
            width: 100px;
            height: 100px;
            background-color: black;
            margin: 0 auto;
            /* 
                旋转:
                    通过旋转可以使元素沿着X、Y、Z轴旋转知道的角度
                    rotateX()
                    rotateY()
                    rotateZ()
            */
            transform: rotateZ(45deg);
            
        }

        .box5 {
            width: 100px;
            height: 100px;
            background-color: red;
            margin: 0 auto;
            transition: 2s;
        }

        .box5:hover {
            /* 
                缩放:
                    对元素进行缩放

                    scaleX() 水平方向缩放
                    scaleY() 垂直方向缩放
                    scale() 双方向缩放

            */
            transform: scale(20);
            
        }

    </style>

</head>
<body>
    
    <div class="box1"></div>
    <div class="box2"></div>
    <div class="box3"></div>
    <div class="box4"></div>
    <div class="box5"></div>

</body>
</html>
目录
相关文章
|
7月前
|
前端开发 开发者
css怎么学
【4月更文挑战第11天】css怎么学
36 1
|
7月前
|
XML 前端开发 数据格式
CSS应用
CSS应用
62 0
|
前端开发
css实现帘幕效果
css实现帘幕效果
84 0
|
6月前
|
XML 前端开发 开发者
什么是css
什么是css
57 4
|
前端开发 容器
CSS(3)——总结
CSS(3)——总结
121 0
CSS(3)——总结
|
前端开发 容器
你需要知道的 CSS 技巧
你需要知道的 CSS 技巧
|
前端开发
CSS3介绍
CSS3介绍
97 0
CSS3介绍
|
前端开发 Ruby 容器
CSS3总结
CSS3总结!
CSS3总结
|
前端开发 JavaScript
|
前端开发 JavaScript
有趣且实用的 CSS 小技巧(上)
今天来看一些有趣且实用的 CSS 小技巧!
124 0