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)

大家都在看

  • 数据结构 二叉树

    cpp;gutter:true;</p> <h1>include</h1> <p>using namespace std;</…

    Linux 2023年6月13日
    080
  • 什么?Android上面跑Linux?

    前言 众所周知,现在程序员因为工作、个人兴趣等对各种系统的需求越来越大,部分人电脑做的还是双系统。其中,比较常见的有各种模拟器、虚拟机在windows上面跑Android、Linu…

    Linux 2023年5月27日
    090
  • 【Leetcode】198. 打家劫舍

    你是一个专业的小偷,计划偷窃沿街的房屋。每间房内都藏有一定的现金,影响你偷窃的唯一制约因素就是相邻的房屋装有相互连通的防盗系统, 如果两间相邻的房屋在同一晚上被小偷闯入,系统会自动…

    Linux 2023年6月6日
    0100
  • Java 8 中的 Stream 遍历树形结构

    树形结构数据处理 public class TreeDemo { public static void main(String[] args) { testtree(); } pu…

    Linux 2023年6月7日
    0120
  • NO.6 HTML+CSS 笔记

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

    Linux 2023年6月7日
    098
  • 爱快在PVE下不定时反复重启死机的解决方法

    太长不看版本: 爱快3.6.X在PVE乃至于ESXI下都存在一定的兼容问题 ! 详细情况: 如题,使用爱快版本为3.6.3 x64 Build20220407113364,底层虚拟…

    Linux 2023年6月13日
    0177
  • linux man 中文手册安装

    Linux Man (手册) linux man 中文手册安装 步骤 下载源程序 解压文件并进入该目录 unzip master.zip ;cd master 安装支持程序 sud…

    Linux 2023年6月7日
    084
  • [python][flask] Flask 图片上传与下载例子(支持漂亮的拖拽上传)

    1、效果预览 2、新增逻辑概览 3、tuchuang.py 逻辑介绍 3.1 图片上传 3.2 图片合法检查 3.3 图片下载 4、init.py 逻辑介绍 5、upload.ht…

    Linux 2023年6月8日
    0120
  • xshell/bash/zsh 等终端鼠标滚轮乱码问题(转)

    终端上滚动鼠标,有可能不是预期的滚屏,而是出现一些乱码字符 解决方法:输入 reset命令 回车即可 注意: clear或者 ctrl+l是清屏命令,在此情况下无效。 转自: xs…

    Linux 2023年5月28日
    0169
  • alloc_pages的实现浅析

    alloc_pages的使用 struct page *alloc_pages(gft_t gfp, unsigned int order) alloc_pages定义于 inux…

    Linux 2023年6月7日
    0107
  • 剑指offer计划21( 位运算简单)—java

    1.1、题目1 剑指 Offer 15. 二进制中1的个数 1.2、解法 通过判断每一位的与来识别1的数量。 1.3、代码 public class Solution { // y…

    Linux 2023年6月11日
    0132
  • 虚拟机网络地址配置你不知道的事儿-服务器的种类

    想必大家在初学Linux过程中,应该都是跟我一样白嫖一台虚拟机进行使用把,但是在大家白嫖的同时知不知道我们公司内是使用的什么样的服务器呢?公司肯定不会跟我们一样在自己电脑进行安装虚…

    Linux 2023年6月14日
    0128
  • Windows10公钥远程连接Linux服务器

    前言 一、环境准备 二、使用步骤 – 1.服务器安装并配置OpenSSH 2. 本地生成密钥 3. 服务器ssh添加密钥 三 总结 前言 使用公钥远程登陆Linux十分…

    Linux 2023年6月7日
    0100
  • SpringSecurity

    1、环境搭建 1、导包,使用maven搭建项目 2、关闭thymeleaf缓存 3、导入静态资源和相应页面代码 4、建立controller层 2、权限与认证 运用了 Aop 切面…

    Linux 2023年6月14日
    088
  • CentOS8 AnolisOS8 yum安装 No match for argument: htop Error: Unable to find a match: htop

    镜像下载、域名解析、时间同步请点击阿里云开源镜像站 CentOS8 AnolisOS8 yum安装失败 今天有人反馈服务器卡,登录上服务器,想看下CPU以及内存使用情况,觉得top…

    Linux 2023年5月27日
    068
  • ElasticSearch & kibana安装

    ElasticSearch ElasticSearch 简介 ElasticSearch 概念 ElasticSearch quick start docker安装ElasticS…

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