H5C3学习笔记

一.什么是HTML5

万维网的核心语言、标准通用标记语言下的一个应用超文本标记语言(HTML)的第五次重大修改。用于取代HTML4与
XHTML的新一代标准版本,所以叫HTML5。
HTML5的设计目的是为了在移动设备上支持多媒体。
增加了新特性:语义特性,本地存储特性,设备兼容特
性,连接特性,网页多媒体特性,三维、图形及特效特
性,性能与集成特性,CSS3特性。
废弃一些元素和属
广义的HTML5 是 HTML5本身 + CSS3 + JavaScript

二.html5部分

1.新增语义化标
header:头部标签
nav:导航标签
articl:内容标签
section:块级标签
aside:侧边栏标签
footer尾部标签

2.H5新增多媒体标签
多媒体标签包含两个,具体如下:
音频:audio
视频:video
使用它们可以很方便的在页面中嵌入音频和视频,而不再去使用落后的 flash 和其他浏览器插件。

  • 音频标签
<audio src="文件地址" controls="controls"></audio>

//解决<audio>在不同浏览器的兼容问题
< audio >
		<source src="happy.mp3" type="audio/mpeg" >
		<source src="happy.ogg" type="audio/ogg" >
 </ audio>
  • 视频标签
<video src="文件地址" controls="controls"></video>

//解决<video>在不同浏览器的兼容问题
< video controls="controls" width="300">
<source src="move.ogg" type="video/ogg" >
<source src="move.mp4" type="video/mp4" >
您的浏览器暂不支持video标签。播放视频
</ video >

3.H5新增input表单、表单属性

属性值 说明
type=“email” 限制用户输入必须为Email类型
type=“url” 限制用户输入必须为URL类型
type=“date” 限制用户输入必须为日期类型
type=“time” 限制用户输入必须为时间类型
type=“month” 限制用户输入必须为月类型
type=“week” 限制用户输入必须为周类型
type=“number” 限制用户输入必须为数字类型
type=“tel” 限制用户输入必须为手机号码类型
type=“search” 搜索框
type=“color” 颜色选择器

三.css3部分

1.属性选择器

选择符 简介
E[att] 选择具有att属性的E元素
E[att=“val”] 选择具有att属性且属性值等于val的E元素
E[att^=“val”] 选择具有att属性且属性值等于val的E元素
E[att$=“val”] 匹配具有att属性、且值以val结尾的E元素
E[att*=“val”] 匹配具有att属性、且值中含有val的E元素
    <style>
        /* 属性选择器使用方法 */
        /* 属性选择器的权重是 10 */
        /* 1.直接写属性 既是button 又有 disabled 这个属性的元素*/
         
        button[disabled] {
             cursor: pointer;
        }
        /* 2. 属性等于值 */
        
        input[type="search"] {
            color: pink;
        }
        /* 3. 以某个值开头的 属性值 */
        
        div[class^="icon"] {
            color: red;
        }
        /* 4. 以某个值结尾的 */
        
        div[class$="icon"] {
            color: green;
        }
        /* 5. 可以在任意位置的 */
        
        div[class*="icon"] {
            color: blue;
        }
    </style
<body>
    <button>按钮</button>
    <button>按钮</button>
    <button disabled="disabled">按钮</button>
    <button disabled="disabled">按钮</button>

    <input type="text" name="" id="" value="文本框">
    <input type="text" name="" id="" value="文本框">
    <input type="text" name="" id="" value="文本框">
    <input type="search" name="" id="" value="搜索框">
    <input type="search" name="" id="" value="搜索框">
    <input type="search" name="" id="" value="搜索框">
    <div class="icon1">图标1</div>
    <div class="icon2">图标2</div>
    <div class="icon3">图标3</div>
    <div class="iicon3">图标4</div>
    <div class="absicon">图标5</div>
</body>

2.结构伪类选择器

选择符 简介
E:first-child 匹配父元素中的第一个子元素E
E:last-child 匹配父元素中最后一个E元素
E:nth-child(n) 匹配父元素中的第n个子元素E
E:first-of-type 指定类型E的第一个
E:last-of-type 指定类型E的最后一个
E:nth-of-type(n) 指定类型E的第n个
<style>
     /*匹配ul元素中的第一个子元素li */
        ul li:first-child {
            background-color: pink;
        }
        
        ul li:last-child {
            background-color: deeppink;
        }
        /* nth-child(n)  我们要第几个,n就是几  比如我们选第8个, 我们直接写 8就可以了 */
        
        ul li:nth-child(8) {
            background-color: lightpink;
        }
         /* of-type 选择指定类型的元素 */
        
        div span:first-of-type {
            background-color: purple;
        }
        
        div span:last-of-type {
            background-color: skyblue;
        }
        
        div span:nth-of-type(2) {
            background-color: red;
        }
    </style>


<body>
<div>
        <p>我是一个p</p>
        <span>我是第一个span</span>
        <span>我是第二个span</span>
        <span>我是第三个span</span>
    </div>
    <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>
        <li>10</li>
    </ul>
</body>

3.伪元素选择器

选择符 简介
::before 在元素内部的前面插入内容
::after 在元素内部的后面插入内容

注意:

  • before 和 after 必须有 content 属性
  • before 在内容的前面,after 在内容的后面
  • before 和 after 创建一个元素,但是属于行内元素。
  • 因为在 dom 里面看不见刚才创建的元素,所以我们称为伪元素 伪元素和标签选择器一样,权重为 1

四、2D 转换

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

  • 缩放:scale
  • 移动:translate
  • 旋转:rotate
  • 倾斜:skew

1. 2D 转换之移动 translate

  • 2D移动是2D转换里面的一种功能,可以改变元素在页面中的位置,类似定位。
/* 表示转化过渡时间*/
 transition: all 4s;
/* 语法  transform: translate(x,y) */
transform: translate(30px, 30px);

特点:

  • 定义 2D 转换,沿着 X 和 Y 轴移动元素

  • translate中的百分比单位是相对于自身元素的 translate:(50%,50%);

  • translate类似定位,不会影响到其他元素的位置 对行内标签没有效果

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

         /* 设置旋转角度 */
            transform: rotate(360deg);
            
             /* 设置中心的旋转 */
            /* transform-origin: left bottom; */
            /* 2. 默认的是 50%  50%  等价于 center  center */
            /* 3. 可以是px 像素 */
             transform-origin: 50px 50px;

3. 2D 转换之缩放scale
缩放,可以放大和缩小。 只要给元素添加上了这个属性就能控制它放大还是缩小,不影响其他元素。

            /*语法: transform: scale(x, y); */
            /* transform:scale(1,1)  宽和高都放大一倍,相对于没有放大 */
            /*transform:scale(2,2)  宽和高都放大了2倍*/
            /* transform:scale(2) :只写一个参数,第二个参数则和第一个参数一样,相当于 scale(2,2)*/
            /* transform:scale(0.5,0.5):缩小*/
            /*  scale 的优势之处: 不会影响其他的盒子 而且可以设置缩放的中心点*/
          
            transform: scale(2,2);

2D转换综合写法顺序

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

五、动画

动画(animation)是CSS3中具有颠覆性的特征之一,可通过设置多个节点来精确控制一个或一组动画,常用来实现复杂的动画效果

  1. 用keyframes 定义动画(类似定义类选择器)
  2. 调用动画
 @keyframes move {
            /* 开始状态 */
            0% {
                transform: translateX(0px);
            }
            /* 结束状态 */
            100% {
                transform: translateX(1000px);
            }
        }
        
        div {
            /* 2. 调用动画 */
            /* 动画名称 */
            animation-name: move;
            /* 持续时间 */
            animation-duration: 2s;
        }

3. 动画简写属性
animation:动画名称 动画时间 运动曲线 何时开始 播放次数 是否反方向 动画等待或者结束的状态;

animation: myfirst 5s linear 2s infinite alternate;
  • 盒子动画结束后,停在结束位置: animation-fill-mode : forwards
  • 想要动画走回来 ,而不是直接跳回来:animation-direction : alternate
  • 暂停动画:animation-play-state: puased;

动画属性:

属性 描述
@keyframes 规定动画。
animation 所有动画属性的简写属性,除了animation-play-state属性。
animation-name 规定@keyframes动画的名称。(必填)
animation-duration 规定动画完成一个周期所花费的秒或毫秒,默认是0。(必填)
animation-timing-function 规定动画的速度曲线,默认是“ease”。
animation-delay 规定动画何时开始,默认是0。
animation-iteration-count 规定动画被播放的次数,默认是1,还有infinite
animation-direction 规定动画是否在下一周期逆向播放,默认是“normal“,alternate逆播放
animation-play-state 规定动画是否正在运行或暂停。默认是"running",还有"pause"。
animation-fill-mode 规定动画结束后状态,保持forwards回到起始backwards

六、3D 转换

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

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

2.3D移动 translate3d
transform:translate3d(x,y,z):其中 x、y、z 分别指要移动的轴的方向的距离
translform:translateX(100px):仅仅是在x轴上移动
translform:translateY(100px):仅仅是在Y轴上移动
translform:translateZ(100px):仅仅是在Z轴上移动(注意:translateZ只能跟px单位)

3.透视 perspective
在父元素添加;

/*perspective越大显示越小*/
 perspective: 500px;

4 translateZ
translform:translateZ(100px):仅仅是在Z轴上移动。有了透视,就能看到translateZ 引起的变化了
translateZ:单位只能是px
 translateZ:往外是正值,数值越大显示越大
 translateZ:往里是负值,数值越小显示越小
5.3D旋转 rotate3d
语法

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

6 .3D呈现 transfrom-style

  • 控制子元素是否开启三维立体环境。
  • 给父亲添加影响的是子盒子。
  • Transform-style: preserve-3d; 子元素开启立体空间,默认的值是 flat 不开启
    <style>
        body {
          /* 透视写到被观察元素的父盒子上面 */
            perspective: 500px;
        }
        
        .box {
            position: relative;
            width: 200px;
            height: 200px;
            margin: 100px auto;
            transition: all 2s;
            /* 让子元素保持3d立体空间环境 */
            transform-style: preserve-3d;
        }
        
        .box:hover {
            transform: rotateY(60deg);
        }
        
        .box div {
            position: absolute;
            top: 0;
            left: 0;
            width: 100%;
            height: 100%;
            background-color: red;
        }
        
        .box div:last-child {
            background-color: blue; 
            /*在x轴旋转60度*/
            transform: rotateX(60deg);
        }
    </style>
<body>
    <div class="box">
        <div></div>
        <div></div>
    </div>
</body>

效果:
在这里插入图片描述

六、浏览器私有前缀

浏览器私有前缀是为了兼容老版本的写法,比较新版本的浏览器无须添加。

1. 私有前缀

  • -moz-:代表 firefox 浏览器私有属性
  • -ms-:代表 ie 浏览器私有属性
  • -webkit-:代表 safari、chrome 私有属性
  • -o-:代表 Opera 私有属性

2. 提倡的写法

-moz-border-radius: 10px; 
-webkit-border-radius: 10px; 
-o-border-radius: 10px; 
border-radius: 10
发布了16 篇原创文章 · 获赞 2 · 访问量 196

猜你喜欢

转载自blog.csdn.net/weixin_43482965/article/details/104484819