2021年3月-第02阶段-前端基础-HTML+CSS阶段-Day02

HTML5 第二天

一、rotate

2d旋转指的是让元素在2维平面内顺时针旋转或者逆时针旋转

使用步骤:

  1. 给元素添加转换属性 transform
  2. 属性值为 rotate(角度)transform:rotate(30deg) 顺时针方向旋转 30度
div{
      transform: rotate(0deg);
}
二、三角
  • 代码演示
<!DOCTYPE html>
<html lang="en">

<head>
    <meta charset="UTF-8">
    <meta name="viewport" content="width=device-width, initial-scale=1.0">
    <meta http-equiv="X-UA-Compatible" content="ie=edge">
    <title>Document</title>
    <style>
        div {
            position: relative;
            width: 249px;
            height: 35px;
            border: 1px solid #000;
        }

        div::after {
            content: "";
            position: absolute;
            top: 8px;
            right: 15px;
            width: 10px;
            height: 10px;
            border-right: 1px solid #000;
            border-bottom: 1px solid #000;
            transform: rotate(45deg);
            transition: all 0.2s;
        }
        /* 鼠标经过div  里面的三角旋转 */

        div:hover::after {
            transform: rotate(225deg);
        }
    </style>
</head>

<body>

</body>

</html>
二、设置元素旋转中心点(transform-origin)
  1. transform-origin 基础语法
transform-origin: x y;
  1. 重要知识点

  2. 注意后面的参数 x 和 y 用空格隔开

  3. x y 默认旋转的中心点是元素的中心 (50% 50%),等价于 center center
  4. 还可以给 x y 设置像素或者方位名词(topbottomleftrightcenter)
三、旋转中心案例
  • 代码演示
<!DOCTYPE html>
<html lang="en">

<head>
    <meta charset="UTF-8">
    <meta name="viewport" content="width=device-width, initial-scale=1.0">
    <meta http-equiv="X-UA-Compatible" content="ie=edge">
    <title>Document</title>
    <style>
        div {
            width: 200px;
            height: 200px;
            background-color: pink;
            margin: 100px auto;
            transition: all 1s;
            /* 1.可以跟方位名词 */
            /* transform-origin: left bottom; */
            /* 2. 默认的是 50%  50%  等价于 center  center */
            /* 3. 可以是px 像素 */
            transform-origin: 50px 50px;
        }

        div:hover {
            transform: rotate(360deg);
        }
    </style>
</head>

<body>

</body>

</html>
四、 2D 转换之 scale
  1. scale 的作用

  2. 用来控制元素的放大与缩小

  3. 语法

transform: scale(x, y)
  1. 知识要点

  2. 注意,x 与 y 之间使用逗号进行分隔

  3. transform: scale(1, 1): 宽高都放大一倍,相当于没有放大
  4. transform: scale(2, 2): 宽和高都放大了二倍
  5. transform: scale(2): 如果只写了一个参数,第二个参数就和第一个参数一致
  6. transform:scale(0.5, 0.5): 缩小
  7. scale 最大的优势:可以设置转换中心点缩放,默认以中心点缩放,而且不影响其他盒子

  8. 代码演示

   div:hover {
       /* &#x6CE8;&#x610F;&#xFF0C;&#x6570;&#x5B57;&#x662F;&#x500D;&#x6570;&#x7684;&#x542B;&#x4E49;&#xFF0C;&#x6240;&#x4EE5;&#x4E0D;&#x9700;&#x8981;&#x52A0;&#x5355;&#x4F4D; */
       /* transform: scale(2, 2) */

       /* &#x5B9E;&#x73B0;&#x7B49;&#x6BD4;&#x7F29;&#x653E;&#xFF0C;&#x540C;&#x65F6;&#x4FEE;&#x6539;&#x5BBD;&#x4E0E;&#x9AD8; */
       /* transform: scale(2) */

       /* &#x5C0F;&#x4E8E; 1 &#x5C31;&#x7B49;&#x4E8E;&#x7F29;&#x653E;*/
       transform: scale(0.5, 0.5)
   }
五、图片放大案例
  • 代码演示
<!DOCTYPE html>
<html lang="en">

<head>
    <meta charset="UTF-8">
    <meta name="viewport" content="width=device-width, initial-scale=1.0">
    <meta http-equiv="X-UA-Compatible" content="ie=edge">
    <title>Document</title>
    <style>
        div {
            overflow: hidden;
            float: left;
            margin: 10px;
        }

        div img {
            transition: all .4s;
        }

        div img:hover {
            transform: scale(1.1);
        }
    </style>
</head>

<body>

</body>

</html>
六、分页按钮案例
  • 代码演示
<!DOCTYPE html>
<html lang="en">

<head>
    <meta charset="UTF-8">
    <meta name="viewport" content="width=device-width, initial-scale=1.0">
    <meta http-equiv="X-UA-Compatible" content="ie=edge">
    <title>Document</title>
    <style>
        li {
            float: left;
            width: 30px;
            height: 30px;
            border: 1px solid pink;
            margin: 10px;
            text-align: center;
            line-height: 30px;
            list-style: none;
            border-radius: 50%;
            cursor: pointer;
            transition: all .4s;
        }

        li:hover {
            transform: scale(1.2);
        }
    </style>
</head>

<body>
    <ul>
        <li>1</li>
        <li>2</li>
        <li>3</li>
        <li>4</li>
        <li>5</li>
        <li>6</li>
        <li>7</li>
    </ul>
</body>

</html>
七、 2D 转换综合写法以及顺序问题
  1. 知识要点

  2. 同时使用多个转换,其格式为 transform: translate() rotate() scale()

  3. 顺序会影响到转换的效果(先旋转会改变坐标轴方向)
  4. 但我们同时有位置或者其他属性的时候,要将位移放到最前面

  5. 代码演示

div:hover {
  transform: translate(200px, 0) rotate(360deg) scale(1.2)
}
<!DOCTYPE html>
<html lang="en">

<head>
    <meta charset="UTF-8">
    <meta name="viewport" content="width=device-width, initial-scale=1.0">
    <meta http-equiv="X-UA-Compatible" content="ie=edge">
    <title>Document</title>
    <style>
        div {
            width: 200px;
            height: 200px;
            background-color: pink;
            transition: all .5s;
        }

        div:hover {
            /* transform: rotate(180deg) translate(150px, 50px); */
            /* 我们同时有位移和其他属性,我们需要把位移放到最前面 */
            transform: translate(150px, 50px) rotate(180deg) scale(1.2);
        }
    </style>
</head>

<body>

</body>

</html>
八、 动画(animation)
  1. 什么是动画

  2. 动画是 CSS3 中最具颠覆性的特征之一,可通过设置多个节点来精确的控制一个或者一组动画,从而实现
    复杂的动画效果

  3. 动画的基本使用

  4. 先定义动画

  5. 在调用定义好的动画

  6. 语法格式(定义动画)

@keyframes &#x52A8;&#x753B;&#x540D;&#x79F0; {
    0% {
        width: 100px;
    }
    100% {
        width: 200px
    }
}
<!DOCTYPE html>
<html lang="en">

<head>
    <meta charset="UTF-8">
    <meta name="viewport" content="width=device-width, initial-scale=1.0">
    <meta http-equiv="X-UA-Compatible" content="ie=edge">
    <title>Document</title>
    <style>
        /* 我们想页面一打开,一个盒子就从左边走到右边 */
        /* 1. 定义动画 */

        @keyframes move {
            /* 开始状态 */
            0% {
                transform: translateX(0px);
            }
            /* 结束状态 */
            100% {
                transform: translateX(1000px);
            }
        }

        div {
            width: 200px;
            height: 200px;
            background-color: pink;
            /* 2. 调用动画 */
            /* 动画名称 */
            animation-name: move;
            /* 持续时间 */
            animation-duration: 2s;
        }
    </style>
</head>

<body>

</body>

</html>
  1. 语法格式(使用动画)
div {
    /* &#x8C03;&#x7528;&#x52A8;&#x753B; */
    animation-name: &#x52A8;&#x753B;&#x540D;&#x79F0;;
    /* &#x6301;&#x7EED;&#x65F6;&#x95F4; */
    animation-duration: &#x6301;&#x7EED;&#x65F6;&#x95F4;&#xFF1B;
}
  1. 动画序列

  2. 0% 是动画的开始,100 % 是动画的完成,这样的规则就是动画序列

  3. 在 @keyframs 中规定某项 CSS 样式,就由创建当前样式逐渐改为新样式的动画效果
  4. 动画是使元素从一个样式逐渐变化为另一个样式的效果,可以改变任意多的样式任意多的次数
  5. 用百分比来规定变化发生的时间,或用 fromto,等同于 0% 和 100%

  6. 代码演示

<style>
    div {
      width: 100px;
      height: 100px;
      background-color: aquamarine;
      animation-name: move;
      animation-duration: 0.5s;
    }

    @keyframes move{
      0% {
        transform: translate(0px)
      }
      100% {
        transform: translate(500px, 0)
      }
    }
  </style>
九、动画序列
  • 代码演示
<!DOCTYPE html>
<html lang="en">

<head>
    <meta charset="UTF-8">
    <meta name="viewport" content="width=device-width, initial-scale=1.0">
    <meta http-equiv="X-UA-Compatible" content="ie=edge">
    <title>Document</title>
    <style>
        /* from to 等价于  0% 和  100% */
        /* @keyframes move {
            from {
                transform: translate(0, 0);
            }
            to {
                transform: translate(1000px, 0);
            }
        } */
        /* 动画序列 */
        /* 1. 可以做多个状态的变化 keyframe 关键帧 */
        /* 2. 里面的百分比要是整数 */
        /* 3. 里面的百分比就是 总的时间(我们这个案例10s)的划分 25% * 10  =  2.5s */

        @keyframes move {
            0% {
                transform: translate(0, 0);
            }
            25% {
                transform: translate(1000px, 0)
            }
            50% {
                transform: translate(1000px, 500px);
            }
            75% {
                transform: translate(0, 500px);
            }
            100% {
                transform: translate(0, 0);
            }
        }

        div {
            width: 100px;
            height: 100px;
            background-color: pink;
            animation-name: move;
            animation-duration: 10s;
        }
    </style>
</head>

<body>

</body>

</html>
十、动画常见属性
  1. 常见的属性

2021年3月-第02阶段-前端基础-HTML+CSS阶段-Day02
  1. 代码演示
div {
  width: 100px;
  height: 100px;
  background-color: aquamarine;
  /* &#x52A8;&#x753B;&#x540D;&#x79F0; */
  animation-name: move;
  /* &#x52A8;&#x753B;&#x82B1;&#x8D39;&#x65F6;&#x957F; */
  animation-duration: 2s;
  /* &#x52A8;&#x753B;&#x901F;&#x5EA6;&#x66F2;&#x7EBF; */
  animation-timing-function: ease-in-out;
  /* &#x52A8;&#x753B;&#x7B49;&#x5F85;&#x591A;&#x957F;&#x65F6;&#x95F4;&#x6267;&#x884C; */
  animation-delay: 2s;
  /* &#x89C4;&#x5B9A;&#x52A8;&#x753B;&#x64AD;&#x653E;&#x6B21;&#x6570; infinite: &#x65E0;&#x9650;&#x5FAA;&#x73AF; */
  animation-iteration-count: infinite;
  /* &#x662F;&#x5426;&#x9006;&#x884C;&#x64AD;&#x653E; */
  animation-direction: alternate;
  /* &#x52A8;&#x753B;&#x7ED3;&#x675F;&#x4E4B;&#x540E;&#x7684;&#x72B6;&#x6001; */
  animation-fill-mode: forwards;
}

div:hover {
  /* &#x89C4;&#x5B9A;&#x52A8;&#x753B;&#x662F;&#x5426;&#x6682;&#x505C;&#x6216;&#x8005;&#x64AD;&#x653E; */
  animation-play-state: paused;
}
十一、 动画简写方式
  1. 动画简写方式
/* animation: &#x52A8;&#x753B;&#x540D;&#x79F0; &#x6301;&#x7EED;&#x65F6;&#x95F4; &#x8FD0;&#x52A8;&#x66F2;&#x7EBF; &#x4F55;&#x65F6;&#x5F00;&#x59CB; &#x64AD;&#x653E;&#x6B21;&#x6570; &#x662F;&#x5426;&#x53CD;&#x65B9;&#x5411; &#x8D77;&#x59CB;&#x4E0E;&#x7ED3;&#x675F;&#x72B6;&#x6001; */
animation: name duration timing-function delay iteration-count direction fill-mode
  1. 知识要点

  2. 简写属性里面不包含 animation-paly-state

  3. 暂停动画 animation-paly-state: paused; 经常和鼠标经过等其他配合使用
  4. 要想动画走回来,而不是直接调回来: animation-direction: alternate
  5. 盒子动画结束后,停在结束位置: animation-fill-mode: forwards

  6. 代码演示

animation: move 2s linear 1s infinite alternate forwards;
十二、速度曲线细节
  1. 速度曲线细节

  2. animation-timing-function: 规定动画的速度曲线,默认是 ease

2021年3月-第02阶段-前端基础-HTML+CSS阶段-Day02
  1. 代码演示
div {
  width: 0px;
  height: 50px;
  line-height: 50px;
  white-space: nowrap;
  overflow: hidden;
  background-color: aquamarine;
  animation: move 4s steps(24) forwards;
}

@keyframes move {
  0% {
    width: 0px;
  }

  100% {
    width: 480px;
  }
}

十三、奔跑的熊大

  1. 代码演示
<!DOCTYPE html>
<html lang="en">
<head>
    <meta charset="UTF-8">
    <meta name="viewport" content="width=device-width, initial-scale=1.0">
    <meta http-equiv="X-UA-Compatible" content="ie=edge">
    <title>Document</title>
    <style>
        body {
            background-color: #ccc;
        }
        div {
            position: absolute;
            width: 200px;
            height: 100px;
            background: url(media/bear.png) no-repeat;
            /* 我们元素可以添加多个动画, 用逗号分隔 */
            animation: bear .4s steps(8) infinite, move 3s forwards;
        }

        @keyframes bear {
            0% {
                background-position: 0 0;
            }
            100% {
                background-position: -1600px 0;
            }
        }

        @keyframes move {
            0% {
                left: 0;
            }
            100% {
                left: 50%;
                /* margin-left: -100px; */
                transform: translateX(-50%);
            }
        }
    </style>
</head>

<body>

</body>

</html>

拓展阅读@

扫一扫下面的二维码,关注我们,获取更多精彩活动资讯,有好礼相送哦~

2021年3月-第02阶段-前端基础-HTML+CSS阶段-Day02

【腾讯云】618云上GO!云服务器限时秒杀,1核2G首年95元!

2021年3月-第02阶段-前端基础-HTML+CSS阶段-Day02

【华为云】特惠专区,多款产品限时特价!

2021年3月-第02阶段-前端基础-HTML+CSS阶段-Day02

【阿里云】上新必买抢先知,劲爆优惠不错过!

2021年3月-第02阶段-前端基础-HTML+CSS阶段-Day02

【七牛云】优惠专区,多款云产品限时抢购!

2021年3月-第02阶段-前端基础-HTML+CSS阶段-Day02

【又拍云】免费CDN专区,10G免费大放送!

2021年3月-第02阶段-前端基础-HTML+CSS阶段-Day02

【知识星球】一个资料分享的站点,各种学习资料,随时分享

2021年3月-第02阶段-前端基础-HTML+CSS阶段-Day02

微信赞助; 微信打赏 支付宝打赏

免责声明:本文所有内容均为互联网上收集而来,仅供学习交流,整理文章为传播相关技术,如有侵权,请联系删除

Original: https://www.cnblogs.com/minvenus/p/Learning-webpage_html_css_2.html
Author: Destiny_Minvenus
Title: 2021年3月-第02阶段-前端基础-HTML+CSS阶段-Day02

原创文章受到原创版权保护。转载请注明出处:https://www.johngo689.com/586114/

转载文章受原作者版权保护。转载请注明原作者出处!

(0)

大家都在看

  • Linux连接出现Permission denied (publickey,gssapi-with-mic,password

    新建的机器或者利旧的机器,当再次连接旧机器时出现以下报错: @@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@…

    Linux 2023年6月13日
    069
  • KMS官网链接(无毒)

    404. 抱歉,您访问的资源不存在。 可能是网址有误,或者对应的内容被删除,或者处于私有状态。 代码改变世界,联系邮箱 contact@cnblogs.com 园子的商业化努力-困…

    Linux 2023年6月7日
    085
  • Docker存储卷

    Docker存储卷 1、COW机制 Docker镜像由多个只读层叠加而成,启动容器时,Docker会加载只读镜像层并在镜像栈顶部添加一个读写层。 如果运行中的容器修改了现有的一个已…

    Linux 2023年6月7日
    069
  • 【Javaweb】JSP标准标签库

    JSTL 1.什么是JSTL 2.版本 3.标签函数库 4.优点 JSTL基本概念 标签(Tag) 标签库(Tag library) 标签库描述文件(Tag Library Des…

    Linux 2023年6月14日
    0107
  • SSM 集成 Freemarker 模板引擎

    在前后端分离的大趋势下,项目开发过程中,应尽量减少前端和后台的依赖和耦合,前端和后台尽可能采用 ajax 进行交互;但是全站 ajax,不利于网站 SEO,所以引入模板引擎,尽量减…

    Linux 2023年6月14日
    085
  • 对脱壳脚本的一些改进–识别出目标DEX

    一、前言 通常对于加壳的程序,第一步的操作通常是脱壳,而现在脱壳一般都选择利用 frida 来进行 hook 进行脱壳,不谈其他脱壳方式,利用 frida 脱壳原理大致分为两种: …

    Linux 2023年6月8日
    094
  • Linux专项之Apache

    1.&#x865A;&#x62DF;&#x673A;&#x4E0A;&#x7F51; 1.安装软件(httpd) yum search ht…

    Linux 2023年6月14日
    083
  • 惊了!修仙=编程??

    大家好,我是良许。 印象中,我们接触到的编程书籍都是这样的: 这样的书籍,去除阅读属性之后,还可以用来垫电脑屏幕、垫桌脚、盖泡面、砸产品经理,实乃居家、旅行、自卫必备神器! 这种书…

    Linux 2023年6月14日
    086
  • 一文搞懂 Redis 架构演化之路

    作者:ryetan,腾讯 CSIG 后台开发工程师 现如今 Redis 变得越来越流行,几乎在很多项目中都要被用到,不知道你在使用 Redis 时,有没有思考过,Redis 到底是…

    Linux 2023年5月28日
    092
  • 为Windows Service 2019 使用 Docker

    引言最近收到领导通知,甲方需要将原来的服务器迁移到新的服务器。原来的服务器上安装了很多的服务,每次重启之后总是有很多的问题需要人工大量的进行干预。这次迁移的还是Windows服务器…

    Linux 2023年6月14日
    0102
  • Linux系统查看磁盘可用空间的5个命令

    大家好,我是良许。 工作中,经常会遇到磁盘爆满的情况,尤其是一台服务器运行了 N 年之后,里面会充满各种各样垃圾文件,比如:编译产生的中间文件、打包的镜像文件、日志文件,等等。 别…

    Linux 2023年5月27日
    0114
  • MAC安装redis

    一、安装命令使用mac的包管理工具brew一行命令搞定安装。若未安装brew,命令行先输入以下命令安装brew。 /usr/bin/ruby -e “$(curl -f…

    Linux 2023年5月28日
    082
  • AI场景存储优化:云知声超算平台基于 JuiceFS 的存储实践

    云知声是一家专注于语音及语言处理的技术公司。 Atlas 超级计算平台是云知声的计算底层基础架构,为云知声在 AI 各个领域(如语音、自然语言处理、视觉等)的模型迭代提供训练加速等…

    Linux 2023年6月14日
    083
  • 实验一-密码引擎-加密API实现与测试

    任务详情 1 下载并查找GMT 0018-2012密码设备应用接口规范原始文档进行学习 (5分) 2 实现GMT 0018-2012密码设备应用接口规范的接口函数,至少实现:1)设…

    Linux 2023年6月8日
    074
  • linux设备模型及实例

    1.linux设备模型基本概念 BUS(总线):用于关联设备和驱动,代表一个实际的物理总线(如USB、PCI bus)或虚拟总线(如platform bus),总线会提供与总线相关…

    Linux 2023年6月6日
    092
  • 附025.kubeadm部署Kubernetes更新证书

    一 查看证书 提示:由上可知,根证书有效期为10年,其他所有证书有效期为1年。 二 证书类别 由此集群根证书签发的证书有: 提示:kubelet的/var/lib/kubelet/…

    Linux 2023年6月13日
    0117
亲爱的 Coder【最近整理,可免费获取】👉 最新必读书单  | 👏 面试题下载  | 🌎 免费的AI知识星球