前端学习|第五章

HTML5&CSS3 新特性


前言

小白开始干前端

生命不息,学习不止~~

以下内容源于黑马前端教程,纯属搬运工了


上篇:[CSS 学习 | 第三章](#CSS 学习 | 第三章)

HTML5 新特性

一、语义化标签

HTML5 的新增特性主要是针对于以前的不足,增加了一些新的标签、新的表单和新的表单属性等。

这些新特性都有兼容性问题,基本是 IE9+ 以上版本的浏览器才支持,如果不考虑兼容性问题,可以大量使用这些新特性。

声明:

  1. 新特性增加了很多,但是我们专注于开发常用的新特性。
  2. 基础班我们讲解部分新特性,到了就业班还会继续讲解其他新特性。

1. HTML5 新增的语义化标签

以前布局,我们基本用 div 来做。div 对于搜索引擎来说,是没有语义的。

html 复制代码
<div class="header"> </div>
<div class="nav"> </div>
<div class="content"> </div>
<div class="footer"> </div>

HTML5 新增的语义化标签

  • <header>:头部标签
  • <nav>:导航标签
  • <article>:内容标签
  • <section>:定义文档某个区域
  • <aside>:侧边栏标签
  • <footer>:尾部标签

注意:

  • 这种语义化标准主要是针对搜索引擎的
  • 这些新标签页面中可以使用多次
  • 在 IE9 中,需要把这些元素转换为块级元素
  • 其实,我们移动端更喜欢使用这些标签
  • HTML5 还增加了很多其他标签,我们后面再慢慢学

二、多媒体标签

新增的多媒体标签主要包含两个:

  • 音频:<audio>
  • 视频:<video>

使用它们可以很方便的在页面中嵌入音频和视频,而不再去使用 flash 和其他浏览器插件。

注意:谷歌浏览器把音频和视频自动播放禁止了

1. 视频 <video>

HTML5 在不使用插件的情况下,也可以原生的支持视频格式文件的播放,当然,支持的格式是有限的

当前 <video> 元素支持三种视频格式: 尽量使用 mp4 格式

语法:

html 复制代码
<video src="文件地址" controls="controls"></video

如果考虑兼容性可以这样写:

html 复制代码
 <video controls="controls" width="300">
	<source src="move.ogg" type="video/ogg" >
 	<source src="move.mp4" type="video/mp4" >
	您的浏览器暂不支持 <video> 标签播放视频
 </video >

属性说明:

示例:

html 复制代码
<!DOCTYPE html>
<html lang="en">

<head>
    <meta charset="UTF-8">
    <meta name="viewport" content="width=device-width, initial-scale=1.0">
    <title>html5-视频标签</title>
    <style>
        video {
            width: 100%;
        }
    </style>
</head>

<body>
    <video src="media/mi.mp4" autoplay="autoplay" controls="controls" muted="muted" loop="loop"
        poster="media/mi9.jpg"></video>
</body>

</html>

1. 音频 <audio>

HTML5 在不使用插件的情况下,也可以原生的支持音频格式文件的播放,当然,支持的格式是有限的。

当前 <audio> 元素支持三种音频格式:

语法:

html 复制代码
<audio src="文件地址" controls="controls"></audio>

如果考虑兼容性可以这样写:

html 复制代码
<audio controls="controls" >
	<source src="happy.mp3" type="audio/mpeg" >
	<source src="happy.ogg" type="audio/ogg" >
	您的浏览器暂不支持 <audio> 标签。
</audio>

属性说明:

示例:

html 复制代码
<!DOCTYPE html>
<html lang="en">

<head>
    <meta charset="UTF-8">
    <meta name="viewport" content="width=device-width, initial-scale=1.0">
    <title>html5-音频标签</title>
    <style>

    </style>
</head>

<body>
    <audio src="media/music.mp3" controls="controls" autoplay="autoplay"></audio>
</body>

</html>

多媒体标签总结

  • 音频标签和视频标签使用方式基本一致
  • 浏览器支持情况不同
  • 谷歌浏览器把音频和视频自动播放禁止了
  • 我们可以给视频标签添加 muted 属性来静音播放视频,音频不可以(可以通过JavaScript解决)
  • 视频标签是重点,我们经常设置自动播放,不使用 controls 控件,循环和设置大小属性

三、新增 input 类型

HTML5 新增的 input 类型

重点记住: numbertelsearch 这三个

示例:

html 复制代码
<!DOCTYPE html>
<html lang="en">

<head>
    <meta charset="UTF-8">
    <meta name="viewport" content="width=device-width, initial-scale=1.0">
    <title>Document</title>
</head>

<body>
    <!-- 验证时必须添加 form 表单域 -->
    <form action="">
        <ul>
            <li>邮箱:<input type="email"></li>
            <li>网址:<input type="url"></li>
            <li>日期:<input type="date"></li>
            <li>时间:<input type="time"></li>
            <li>数量:<input type="number"></li>
            <li>手机号码:<input type="tel"></li>
            <li>搜索:<input type="search"></li>
            <li>颜色:<input type="color"></li>
            <!-- 当点击提交按钮时就会进行校验 -->
            <li><input type="submit" value="提交"></li>
        </ul>
    </form>
</body>

</html>

四、新增表单属性

HTML5 新增的表单属性

属性 说明
required required 表单拥有该属性表示其内容不能为空,必填
placeholder 提示文本 表单的提示信息,存在默认值将不显示
autofocus autofocus 自动聚焦属性,页面加载完成自动聚焦到指定表单
autocomplete off / on 当用户在开始键入时,游览器基于之前键入过的值,应该显示出在字段中填写的选项。默认已经打开,如 autocomplete="on",关闭 autocomplete="off" 需要放在表单内,同时加上 name 属性,同时成功提交
multiple multiple 可以多选文件提交

可以通过css以下设置修改 placeholder 里面的字体颜色:

css 复制代码
input::placeholder {
	color: red;
}

示例:

html 复制代码
<!DOCTYPE html>
<html lang="en">

<head>
    <meta charset="UTF-8">
    <meta name="viewport" content="width=device-width, initial-scale=1.0">
    <title>html5-新增表单属性</title>
    <style>
        input::placeholder {
            color: red;
        }
    </style>
</head>

<body>
    <form action="">
        <input type="search" name="sear" id="" required="required" placeholder="搜索" autocomplete="on"
            autofocus="autofocus">
        <input type="file" name="upload" id="" multiple="multiple">
        <input type="submit" value="提交">
    </form>
</body>

</html>

CSS3 新特性

  • 新增的CSS3特性有兼容性问题,ie9+才支持
  • 移动端支持优于 PC 端
  • 不断改进中
  • 应用相对广泛
  • 现阶段主要学习:新增选择器和盒子模型以及其他特性

一、新增选择器

CSS3 给我们新增了选择器,可以更加便捷,更加自由的选择目标元素:

  • 属性选择器
  • 结构伪类选择器
  • 伪元素选择器

注意:类选择器、属性选择器、伪类选择器,权重为 10

1. 属性选择器

属性选择器可以根据元素特定属性的来选择元素。 这样就可以不用借助于类或者 id 选择器。

示例:

html 复制代码
<!DOCTYPE html>
<html lang="en">

<head>
    <meta charset="UTF-8">
    <meta name="viewport" content="width=device-width, initial-scale=1.0">
    <title>CSS3新增属性选择器</title>
    <style>
        /* 必须是 input 但是同时具有 value 这个属性的元素 */
        input[value] {
            color: pink;
        }

        /* 只选择 type=text 文本框的 input 选取出来 */
        input[type=text] {
            color: red;
        }

        /* 选择是 div 然后具有 class 属性,并且属性值必须是 icon 开头的元素 */
        div[class^=icon] {
            color: green;
        }

		/* 选择是 div 然后具有 class 属性,并且属性值必须是 png 结尾的元素 */
        div[class$=png] {
            color: yellow;
        }
    </style>
</head>

<body>
    <!-- 1.利用属性选择器就可以不用借助类或者 id 选择器 -->
    <input type="text" value="请输入用户名">
    <input type="text">
    <!-- 2.属性选择器还可以选择属性=值的某些元素 -->
    <input type="text" name="" id="">
    <input type="password" name="" id="">
    <!-- 3.属性选择器可以选择属性值开头的某些元素 -->
    <div class="icon1">小图标1</div>
    <div class="icon2">小图标2</div>
    <div class="imge3">小图片3</div>
    <div class="imge4">小图片4</div>
    <!-- 4.属性选择器可以选择属性值结尾的某些元素 -->
    <div class="1-pic">照片1</div>
    <div class="2-pic">照片2</div>
    <div class="3-png">照片3</div>
    <div class="4-png">照片4</div>
</body>

</html>

2. 结构伪类选择器

结构伪类选择器主要根据文档结构来选择器元素, 常用于根据父级选择器里面的子元素


nth-child(n) 选择某个父元素的一个或多个特定的子元素(重点)

  • n 可以是数字,关键字和公式
  • n 如果是数字,就是选择第 n 个子元素, 里面数字从1开始...
  • n 可以是关键字:even 偶数,odd 奇数
  • n 可以是公式:常见的公式如下 ( 如果n是公式,则从0开始计算,但是第 0 个元素或者超出了元素的个数会被忽略 )

区别:

  1. nth-child 对父元素里面所有孩子排序选择(序号是固定的) 先找到第n个孩子,然后看看是否和E匹配
  2. nth-of-type 对父元素里面指定子元素进行排序选择。 先去匹配E ,然后再根据E 找第n个孩子

示例:

html 复制代码
<!DOCTYPE html>
<html lang="en">

<head>
    <meta charset="UTF-8">
    <meta name="viewport" content="width=device-width, initial-scale=1.0">
    <title>结构伪类选择器</title>
    <style>
        /* 选择 ul 里面的第一个 li */
        ul li:first-child {
            background-color: pink;
        }

        /* 选择 ul 里面的最好一个 li */
        ul li:last-child {
            background-color: skyblue;
        }

        /* 选择 ul 里面的第 n 个 li */
        ul li:nth-child(3) {
            background-color: yellowgreen;
        }

        /* 选择 ul 里面的所有偶数 li */
        ul li:nth-child(even) {
            background-color: gray;
        }

        /* 选择 ul 里面的所有 5 倍数的 li */
        ul li:nth-child(5n) {
            background-color: bisque;
        }

        section div:nth-child(1) {
            border-color: red;
        }

        section div:nth-of-type(1) {
            background-color: aquamarine;
        }
    </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>
        <li>我排行第8</li>
        <li>我排行第9</li>
    </ul>

    <section>
        <p>1111</p>
        <div>2222</div>
        <div>3333</div>
    </section>
</body>

</html>

3. 伪元素选择器

伪元素选择器可以帮助我们利用CSS创建新标签元素,而不需要HTML标签,从而简化HTML结构

注意:

  • beforeafter 创建一个元素,但是属于行内元素
  • 新创建的这个元素在文档树中是找不到的,所以我们称为伪元素
  • 语法: element::before {}
  • before 和 after 必须有 content 属性
  • before 在父元素内容的前面创建元素,after 在父元素内容的后面插入元素
  • 伪元素选择器标签选择器一样,权重为 1

示例 - 字体图标:

html 复制代码
<!DOCTYPE html>
<html lang="en">

<head>
    <meta charset="UTF-8">
    <meta name="viewport" content="width=device-width, initial-scale=1.0">
    <title>伪元素选择器</title>
    <style>
        @font-face {
            font-family: 'icomoon';
            src: url('fonts/icomoon.eot?7kkyc2');
            src: url('fonts/icomoon.eot?7kkyc2#iefix') format('embedded-opentype'),
                url('fonts/icomoon.ttf?7kkyc2') format('truetype'),
                url('fonts/icomoon.woff?7kkyc2') format('woff'),
                url('fonts/icomoon.svg?7kkyc2#icomoon') format('svg');
            font-weight: normal;
            font-style: normal;
        }

        div {
            position: relative;
            width: 200px;
            height: 30px;
            border: 1px solid red;
        }

        div::after {
            position: absolute;
            content: "\e91e";
            top: 10px;
            right: 10px;
            font-family: 'icomoon';
            color: red;
            font-size: 18px;

        }
    </style>
</head>

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

</html>

伪元素清除浮动

W3C 推荐使用额外标签法(也称为隔墙法)清除浮动,而伪元素清除浮动就是额外标签发的一个升级和优化

单伪元素清除浮动

双伪元素清除浮动:


二、盒子模型

CSS3 中可以通过 box-sizing 来指定盒模型,有2个值:即可指定为 content-boxborder-box,这样我们计算盒子大小的方式就发生了改变

可以分成两种情况:

  • box-sizing: content-box 盒子大小为 width + padding + border (以前默认的)
  • box-sizing: border-box 盒子大小为 width

如果盒子模型改为了box-sizing: border-box , 那 paddingborder 就不会撑大盒子了(前提 paddingborder 不会超过 width 宽度)


三、图片模糊处理

filter CSS 属性将模糊或颜色偏移等图形效果应用于元素

语法:

css 复制代码
filter:   函数(); -->  例如: filter: blur(5px);  -->  blur模糊处理  数值越大越模糊

示例:

html 复制代码
<!DOCTYPE html>
<html lang="en">

<head>
    <meta charset="UTF-8">
    <meta name="viewport" content="width=device-width, initial-scale=1.0">
    <title>Document</title>
    <style>
        img {
            /* blur 是一个函数,小括号中的数值越大,图片越模糊 */
            filter: blur(4px);
        }
    </style>
</head>

<body>
    <img src="media/mi9.jpg" alt="">
</body>

</html>

四、calc 函数

calc() 此 CSS 函数让你在声明 CSS 属性值时执行一些计算

语法:

css 复制代码
width: calc(100% - 80px);

括号里面可以使用 + - * / 来进行计算

示例:

html 复制代码
<!DOCTYPE html>
<html lang="en">

<head>
    <meta charset="UTF-8">
    <meta name="viewport" content="width=device-width, initial-scale=1.0">
    <title>Document</title>
    <style>
        .father {
            width: 300px;
            height: 200px;
            background-color: aqua;
        }

        .son {
            width: calc(100% - 30px);
            height: 30px;
            background-color: antiquewhite;
        }
    </style>
</head>

<body>
    <!-- 需要子盒子的宽度永远比父盒子小 30 像素 -->
    <div class="father">
        <div class="son"></div>
    </div>
</body>

</html>

五、过渡 - transition

过渡(transition) 是 CSS3 中具有颠覆性的特征之一,我们可以在不使用 Flash 动画或 JavaScript 的情况下,当元素从一种样式变换为另一种样式时为元素添加效果。

过渡动画: 是从一个状态渐渐的过渡到另外一个状态

可以让我们页面更好看,更动感十足,虽然 低版本浏览器不支持(ie9以下版本) 但是不会影响页面布局。

现在经常和 :hover 一起 搭配使用

语法:

css 复制代码
transition: 要过渡的属性  花费时间  运动曲线  何时开始;
  • 属性 : 想要变化的 css 属性, 宽度高度 背景颜色 内外边距都可以 。如果想要所有的属性都变化过渡, 写一个all 就可以
  • 花费时间: 单位是 秒(必须写单位) 比如 0.5s
  • 运动曲线: 默认是 ease (可以省略)
  • 何时开始:单位是 秒(必须写单位)可以设置延迟触发时间 默认是 0s (可以省略)
  • 后面两个属性可以省略
  • 记住过渡的使用口诀: 谁做过渡给谁加

示例:

html 复制代码
<!DOCTYPE html>
<html lang="en">

<head>
    <meta charset="UTF-8">
    <meta name="viewport" content="width=device-width, initial-scale=1.0">
    <title>过渡</title>
    <style>
        .box {
            width: 200px;
            height: 100px;
            background-color: skyblue;
            /* transition: 变化的属性 花费时间 运动曲线 何时开始 */
            /* transition: width .5s; */
            /* 多个可用逗号拼接 */
            /* transition: width .5s, height 1s ease .5s; */
            /* 如果想要多个属性都变化,属性写 all 就行了 */
            transition: all .5s;
        }

        .box:hover {
            width: 400px;
            height: 200px;
        }
    </style>
</head>

<body>
    <div class="box"></div>
</body>

</html>

六、2D 转换 - transform

转换(transform)是CSS3中具有颠覆性的特征之一,可以实现元素的位移、旋转、缩放等效果

  • 移动:translate
  • 旋转:rotate
  • 缩放:scale

二维坐标系:

2D转换是改变标签在二维平面上的位置和形状的一种技术

1. 2D 转换之移动 translate

2D移动是2D转换里面的一种功能,可以改变元素在页面中的位置,类似 定位

语法:

css 复制代码
transform: translate(x,y);
transform: translateX(n);
transform: translateY(n);

重点:

  • 定义 2D 转换中的移动,沿着 X 和
  • translate 最大的优点:不会影响到其他元素的位置
  • translate 中的百分比单位是相对于自身元素的 translate:(50%,50%)
  • 对行内标签没有效果

2. 2D 转换之移动 rotate

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

语法:

css 复制代码
transform:rotate(度数deg)

重点:

  • rotate 里面跟度数, 单位是 deg 比如 rotate(45deg)
  • 角度为正时,顺时针,负时,为逆时针
  • 默认旋转的中心点是元素的中心点

3. 2D 转换之旋转 rotate

css 复制代码
p::before {
 content: '';
 position: absolute;
 right: 20px;
 top: 10px;
 width: 10px;
 height: 10px;
 border-right: 1px solid #000;
 border-bottom: 1px solid #000;
 transform: rotate(45deg);
}

4. 2D 转换中心点 transform-origin

设置元素转换的中心点

语法:

css 复制代码
transform-origin: x y;

重点:

  • 注意后面的参数 x 和 y 用空格隔开
  • x y 默认转换的中心点是元素的中心点 (50% 50%)
  • 还可以给 x y 设置 像素 或者 方位名词 (top bottom left right center)

5. 2D 转换之缩放scale

缩放,顾名思义,可以放大和缩小。 只要给元素添加上了这个属性就能控制它放大还是缩小

语法:

css 复制代码
transform:scale(x,y);

注意:

  • 注意其中的 x 和 y 用逗号分隔
  • transform:scale(1,1) :宽和高都放大一倍,相对于没有放大
  • transform:scale(2,2) :宽和高都放大了2倍
  • transform:scale(2) :只写一个参数,第二个参数则和第一个参数一样,相当于 scale(2,2)
  • transform:scale(0.5,0.5):缩小
  • sacle 缩放最大的优势:可以设置转换中心点缩放,默认以中心点缩放的,而且不影响其他盒子

案例-分页按钮:

html 复制代码
<!DOCTYPE html>
<html lang="en">

<head>
    <meta charset="UTF-8">
    <meta name="viewport" content="width=device-width, initial-scale=1.0">
    <title>Document</title>
    <style>
        li {
            float: left;
            width: 30px;
            height: 30px;
            margin: 10px;
            border: 1px solid skyblue;
            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>

5. 2D 转换综合写法

  1. 同时使用多个转换,其格式为:transform: translate() rotate() scale() ...等
  2. 其顺序会影转换的效果。(先旋转会改变坐标轴方向)
  3. 当我们同时有位移和其他属性的时候,记得要将位移放到最前

七、动画 - animation

动画(animation)是CSS3中具有颠覆性的特征之一,可通过设置多个节点来精确控制一个或一组动画,常用来实现复杂的动画效果。相比较过渡,动画可以实现更多变化,更多控制,连续自动播放等效果。

制作动画分为两步:

  • 先定义动画
  • 再使用(调用)动画

1. 用keyframes 定义动画(类似定义类选择器)

语法:

css 复制代码
@keyframes 动画名称 {
 0%{
 width:100px;
 } 
 100%{
 width:200px;
 }
}

动画序列

  • 0% 是动画的开始,100% 是动画的完成。这样的规则就是动画序列
  • 在 @keyframes 中规定某项 CSS 样式,就能创建由当前样式逐渐改为新样式的动画效果
  • 动画是使元素从一种样式逐渐变化为另一种样式的效果。您可以改变任意多的样式任意多的次数
  • 请用百分比来规定变化发生的时间,或用关键词 "from" 和 "to",等同于 0% 和 100%

2. 元素使用动画

语法:

css 复制代码
div {
 width: 200px;
 height: 200px;
 background-color: aqua;
 margin: 100px auto;
 /* 调用动画 */
 animation-name: 动画名称;
 /* 持续时间 */
 animation-duration: 持续时间;
 }

示例:

html 复制代码
<!DOCTYPE html>
<html lang="en">

<head>
    <meta charset="UTF-8">
    <meta name="viewport" content="width=device-width, initial-scale=1.0">
    <title>Document</title>
    <style>
        /* from 和 to 等价于 0% 和 100% */
        @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: skyblue;
            animation-name: move;
            animation-duration: 3s;
        }
    </style>
</head>

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

</html>

动画常用属性

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

动画简写属性

animation:动画名称 持续时间 运动曲线 何时开始 播放次数 是否反方向 动画起始或者结束的

css 复制代码
animation: myfirst 5s linear 2s infinite alternate;
  • 简写属性里面不包含 animation-play-state
  • 暂停动画:animation-play-state: puased; 经常和鼠标经过等其他配合使用
  • 想要动画走回来 ,而不是直接跳回来:animation-direction : alternate
  • 盒子动画结束后,停在结束位置: animation-fill-mode : forwards

八、3D 转换 - translate3d

我们生活的环境是3D的,照片就是3D物体在2D平面呈现的例子

3D 的特点:

  • 近大远小
  • 物体后面遮挡不可见

三维坐标系其实就是指立体空间,立体空间是由3个轴共同组成的

  • x轴:水平向右 注意: x 右边是正值,左边是负
  • y轴:垂直向下 注意: y 下面是正值,上面是负值
  • z轴:垂直屏幕 注意: 往外面是正值,往里面是

3D 转换主要学习工作中最常用的 3D 位移3D 旋转,主要知识点:

  • 3D位移:translate3d(x,y,z)
  • 3D旋转:rotate3d(x,y,z)
  • 透视:perspective
  • 3D呈现:transfrom-style

3D移动 translate3d

3D移动在2D移动的基础上多加了一个可以移动的方向,就是 z 轴方向

  • translform:translateX(100px):仅仅是在x轴上移动
  • translform:translateY(100px):仅仅是在Y轴上移动
  • translform:translateZ(100px):仅仅是在Z轴上移动(注意:translateZ一般用px单位)
  • transform:translate3d(x,y,z):其中 x、y、z 分别指要移动的轴的方

因为z轴是垂直屏幕,由里指向外面,所以默认是看不到元素在z轴的方向上移动

透视 perspectiv

在2D平面产生近大远小视觉立体,但是只是效果二维的

  • 如果想要在网页产生3D效果需要透视(理解成3D物体投影在2D平面内)
  • 模拟人类的视觉位置,可认为安排一只眼睛去看
  • 透视我们也称为视距:视距就是人的眼睛到屏幕的距离
  • 距离视觉点越近的在电脑平面成像越大,越远成像越小
  • 透视的单位是像素

透视写在被观察元素的父盒子上面的

d:就是视距,视距就是一个距离人的眼睛到屏幕的距离

z:就是 z 轴,物体距离屏幕的距离,z 轴越大(正值) 我们看到的物体就越大

translateZ

translform:translateZ(100px):仅仅是在Z轴上移动。有了透视,就能看到 translateZ 引起的变化了

  • translateZ:近大远小
  • translateZ:往外是正值
  • translateZ:往里是负值

3D旋转 rotate3d

3D旋转指可以让元素在三维平面内沿着 x轴,y轴,z轴或者自定义轴进行旋转

  • transform:rotateX(45deg):沿着x轴正方向旋转 45度
  • transform:rotateY(45deg) :沿着y轴正方向旋转 45deg
  • transform:rotateZ(45deg) :沿着Z轴正方向旋转 45de
  • transform:rotate3d(x,y,z,deg): 沿着自定义轴旋转 deg为角度(了解即可)

transform:rotate3d(x,y,z,deg): 沿着自定义轴旋转 deg为角度,xyz是表示旋转轴的矢量,是标示你是否希望沿着该轴旋转,最后一个标示旋转的角度

  • transform:rotate3d(1,0,0,45deg) 就是沿着x轴旋转 45deg
  • transform:rotate3d(1,1,0,45deg) 就是沿着对角线旋转 45de
相关推荐
Json____14 分钟前
学法减分交管12123模拟练习小程序源码前端和后端和搭建教程
前端·后端·学习·小程序·uni-app·学法减分·驾考题库
五味香17 分钟前
Linux学习,ip 命令
linux·服务器·c语言·开发语言·git·学习·tcp/ip
Chef_Chen26 分钟前
从0开始学习机器学习--Day22--优化总结以及误差作业(上)
人工智能·学习·机器学习
上趣工作室26 分钟前
vue2在el-dialog打开的时候使该el-dialog中的某个输入框获得焦点方法总结
前端·javascript·vue.js
家里有只小肥猫27 分钟前
el-tree 父节点隐藏
前端·javascript·vue.js
fkalis28 分钟前
【海外SRC漏洞挖掘】谷歌语法发现XSS+Waf Bypass
前端·xss
虾球xz41 分钟前
游戏引擎学习第11天
stm32·学习·游戏引擎
心怀梦想的咸鱼44 分钟前
Ue5 umg学习(三)文本控件
学习·ue5
心怀梦想的咸鱼1 小时前
Ue5 umg学习(二)图像控件,锚点
学习·ue5
zxg_神说要有光1 小时前
自由职业第二年,我忘记了为什么出发
前端·javascript·程序员