当前位置: 首页 > news >正文

HTML5( HTML5 、CSS3) 第一天

HTML5 第一天

  • HTML5 第一天
    • 一、什么是 `HTML5`
    • 二、`HTML5 ` 新增标签
    • 三、多媒体音频标签
    • 四、多媒体视频标签
    • 五、新增 input 标签
    • 六、新增表单属性
    • 七、`CSS3 ` 新特性
    • 八、`CSS3 ` 属性选择器
    • 九、结构伪类选择器
    • 十、`nth-child` 参数详解
    • 十一、`nth-child` 和 `nt-of-type` 的区别
    • 十二、伪元素选择器
    • 十三、伪元素的案例
    • 十四、CSS3盒子模型
    • 十五、CSS3滤镜filter
    • 十六、CSS3 calc
    • 十七、CSS3 过渡
    • 十八、广义HTML5
    • 十九、vscode
    • 二十、`2D` 转换之移动 `translate`
    • 二十一、让一个盒子水平垂直居中

HTML5 第一天

一、什么是 HTML5

  1. HTML5 的概念与定义
  • 定义:HTML5 定义了 HTML 标准的最新版本,是对 HTML 的第五次重大修改,号称下一代的 HTML
  • 两个概念:
    • 是一个新版本的 HTML 语言,定义了新的标签、特性和属性
    • 拥有一个强大的技术集,这些技术集是指: HTML5CSS3javascript, 这也是广义上的 HTML5
  1. HTML5 拓展了哪些内容
  • 语义化标签
  • 本地存储
  • 兼容特性
  • 2D3D
  • 动画、过渡
  • CSS3 特性
  • 性能与集成
  1. HTML5 的现状

    绝对多数新的属性,都已经被浏览器所支持,最新版本的浏览器已经开始陆续支持最新的特性,

    总的来说:HTML5 已经是大势所趋

二、HTML5 新增标签

  1. 什么是语义化

  2. 新增了那些语义化标签

    • header — 头部标签
    • nav — 导航标签
    • article — 内容标签
    • section — 块级标签
    • aside — 侧边栏标签
    • footer — 尾部标签

  3. 使用语义化标签的注意

- 语义化标签主要针对搜索引擎
- 新标签可以使用一次或者多次
- 在 `IE9` 浏览器中,需要把语义化标签都转换为块级元素
- 语义化标签,在移动端支持比较友好,
- 另外,`HTML5` 新增的了很多的语义化标签,随着课程深入,还会学习到其他的

三、多媒体音频标签

  1. 多媒体标签有两个,分别是
  • 音频 – audio
  • 视频 – video
  1. audio 标签说明
  • 可以在不使用标签的情况下,也能够原生的支持音频格式文件的播放,
  • 但是:播放格式是有限的
  1. audio 支持的音频格式

    • audio 目前支持三种格式

在这里插入图片描述

  1. audio 的参数
    在这里插入图片描述

5、audio 代码演示

<body><!-- 注意:在 chrome 浏览器中已经禁用了 autoplay 属性 --><!-- <audio src="./media/snow.mp3" controls autoplay></audio> --><!-- 因为不同浏览器支持不同的格式,所以我们采取的方案是这个音频准备多个文件--><audio controls><source src="./media/snow.mp3" type="audio/mpeg" /></audio>
</body>

四、多媒体视频标签

  1. video 视频标签

    • 目前支持三种格式
      在这里插入图片描述
  2. 语法格式

    <video src="./media/video.mp4" controls="controls"></video>
    
  3. video 参数

在这里插入图片描述
在这里插入图片描述

  1. video 代码演示

    <body><!-- <video src="./media/video.mp4" controls="controls"></video> --><!-- 谷歌浏览器禁用了自动播放功能,如果想自动播放,需要添加 muted 属性 --><video controls="controls" autoplay muted loop poster="./media/pig.jpg"><source src="./media/video.mp4" type="video/mp4"><source src="./media/video.ogg" type="video/ogg"></video>
    </body>
    
  2. 多媒体标签总结

  • 音频标签与视频标签使用基本一致
  • 多媒体标签在不同浏览器下情况不同,存在兼容性问题
  • 谷歌浏览器把音频和视频标签的自动播放都禁止了
  • 谷歌浏览器中视频添加 muted 标签可以自己播放
  • 注意:重点记住使用方法以及自动播放即可,其他属性可以在使用时查找对应的手册

五、新增 input 标签

在这里插入图片描述

六、新增表单属性

在这里插入图片描述

七、CSS3 新特性

  1. 什么是 CSS3

    • CSS2 的基础上拓展、新增的样式
  2. CSS3 发展现状

    • 移动端支持优于 PC
    • CSS3 目前还草案,在不断改进中
    • CSS3 相对 H5,应用非常广泛
    • 新增的css3特性有兼容性问题,ie9+才支持
    • 现阶段主要学习:新增选择器盒子模型以及其他特性
  3. CSS3 给我们新增了选择器,可以更加便捷,更加自由的选择目标元素

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

类选择器,属性选择器,伪类选择器,权重都是10

八、CSS3 属性选择器

属性选择器可以根据元素的特定属性来选择元素

  1. 属性选择器列表

在这里插入图片描述

  1. 属性选择器代码演示
   button {cursor: pointer;}button[disabled] {cursor: default}
  1. 代码演示
   input[type=search] {color: skyblue;}span[class^=black] {color: lightgreen;}span[class$=black] {color: lightsalmon;}span[class*=black] {color: lightseagreen;}
<!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>/* 属性选择器使用方法 *//* 选择的是:  既是button 又有 disabled 这个属性的元素 *//* 属性选择器的权重是 10 *//* 1.直接写属性 */button[disabled] {cursor: default;}button {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>
</head><body><!-- disabled 是禁用我们的按钮 --><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></html>

九、结构伪类选择器

  1. 属性列表
    根据文档结构来选择元素,常用于根据父级选择器里面的子元素
    在这里插入图片描述

  2. 代码演示

   ul li:first-child {background-color: lightseagreen;}ul li:last-child {background-color: lightcoral;}ul li:nth-child(3) {background-color: aqua;}
<!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>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;}</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><li>10</li></ul>
</body></html>

十、nth-child 参数详解

  1. nth-child 详解

    • 注意:本质上就是选中第几个子元素

    • n 可以是数字、关键字、公式

    • n 如果是数字,就是选中第几个

    • 常见的关键字有 even 偶数、odd 奇数

    • 常见的公式如下(如果 n 是公式,则从 0 开始计算),但是第 0 个元素或者超出了元素的个数会被忽略

在这里插入图片描述

  1. 代码演示
<style>/* 偶数 */ul li:nth-child(even) {background-color: aquamarine;}/* 奇数 */ul li:nth-child(odd) {background-color: blueviolet;}/*n 是公式,从 0 开始计算 */ul li:nth-child(n) {background-color: lightcoral;}/* 偶数 */ul li:nth-child(2n) {background-color: lightskyblue;}/* 奇数 */ul li:nth-child(2n + 1) {background-color: lightsalmon;}/* 选择第 0 5 10 15, 应该怎么选 */ul li:nth-child(5n) {background-color: orangered;}/* n + 5 就是从第5个开始往后选择 */ul li:nth-child(n + 5) {background-color: peru;}/* -n + 5 前五个 */ul li:nth-child(-n + 5) {background-color: tan;}
</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>/* n 可是关键词  even 是偶数  odd 是奇数 *//* ul li:nth-child(even) {background-color: pink;}ul li:nth-child(odd) {background-color: hotpink;} *//* n 是公式  但是 n 从0开始计算 *//* ul li:nth-child(n) {background-color: pink;} *//* 2n 偶数  类似于 even *//* ul li:nth-child(2n) {background-color: pink;} *//* 2n + 1  类似于 odd *//* ul li:nth-child(2n+1) {background-color: skyblue;} *//* 5n  选择第  0  5  10  15 ... *//* ul li:nth-child(5n) {background-color: pink;} *//* n+5 就是从第5个开始往后面选择 包含第5个 *//* ul li:nth-child(n+5) {background-color: pink;} *//* -n + 5 就是选择前面5个  */ul li:nth-child(-n+5) {background-color: pink;}</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><li>10</li></ul>
</body>

十一、nth-childnt-of-type 的区别

  1. 代码演示
<style>div :nth-child(1) {background-color: lightblue;}div :nth-child(2) {background-color: lightpink;}div span:nth-of-type(2) {background-color: lightseagreen;}div span:nth-of-type(3) {background-color: #fff;}
</style>
  1. 区别

    • nth-child 选择父元素里面的第几个子元素,不管是第几个类型
    • nth-child 会把所有的盒子都排序号,div:nth-child(1)执行的时候 首先看 ::nth-child(1) 之后回去看前面的div 都符合才会显示
    • nth-of-type 选择指定类型的元素
    • nth-of-type 会把指定元素的盒子排列序号,执行的时候首先看 div指定的元素,之后回去看:nth-of-type(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>/* div :nth-child(1) {background-color: pink;}div :nth-child(2) {background-color: purple;} *//* div span:nth-child(1) {  这个选不到background-color: pink;} */div span:nth-child(2) {background-color: pink;}/* 总结: :nth-child(n)  选择 父元素里面的 第 n个孩子, 它不管里面的孩子是否同一种类型 *//* 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>
</head><body><div><p>我是一个屁</p><span>我是span</span><span>我是span</span><span>我是span</span></div><!-- ul 里面我们只允许放li  所以 nth-child 和 nth-of-type 就一样了 --><ul><li></li><li></li><li></li><li></li><li></li><li></li><li></li><li></li><li></li><li></li></ul>
</body></html>

十二、伪元素选择器

  1. 伪类选择器

在这里插入图片描述

  1. 伪类选择器注意事项

    • beforeafter 必须有 content 属性
    • before 在内容前面,after 在内容后面
    • beforeafter 创建的是一个元素,但是属于行内元素
    • 创建出来的元素在 Dom 中查找不到,所以称为伪元素
    • 伪元素和标签选择器一样,权重为 1
    • 语法:element::before{}
  2. 代码演示

    <style>div {width: 100px;height: 100px;border: 1px solid lightcoral;}div::after,div::before {width: 20px;height: 50px;text-align: center;display: inline-block;}div::after {content: '德';background-color: lightskyblue;}div::before {content: '道';background-color: mediumaquamarine;}</style>
    

十三、伪元素的案例

  • 添加字体图标

    p {width: 220px;height: 22px;border: 1px solid lightseagreen;margin: 60px;position: relative;
    }
    p::after {content: '\ea50';font-family: 'icomoon';position: absolute;top: -1px;right: 10px;
    }
    
  • 清除浮动
    子元素全部浮动,导致父元素没有高度

    • 额外标签法
    • 父级添加overflow属性
    • 父级添加after伪元素
    • 父级添加双伪元素

在这里插入图片描述
子元素全部浮动,导致父元素没有高度

在这里插入图片描述
在这里插入图片描述

十四、CSS3盒子模型

css3可以通过box-sizing来指定盒模型,即可指定为content-box,border-box,这样我们计算盒子大小的方式就改变了

分成两种情况:

  1. box-sizing:content-box 盒子大小为width+padding+boder
  2. box-sizing:border-box 盒子大小为width

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

十五、CSS3滤镜filter

filter是一个函数,小括号里面数值越大,图片约模糊,注意数值要加px单位
filter:blur(15px)

十六、CSS3 calc

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

width:calc(100% - 80px)
括号里可以使用±*/

十七、CSS3 过渡

在这里插入图片描述
在这里插入图片描述
过渡的口诀:谁做过渡给谁加

<!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>div {width: 200px;height: 100px;background-color: pink;/* transition 变化的属性 花费的时间 运动曲线 何时开始 *//* 谁做过渡给谁加 *//* transition: width .5s ease 1s; *//* 如果想要写多个属性,利用逗号进行分割 *//* transition: width .5s,height .5s; *//* 如果想要多个属性都变化,属性写all就可以了 */transition: all .5s;}div:hover {width: 400px;height: 200px;}</style>
</head>
<body><div></div>
</body>
</html>

十八、广义HTML5

在这里插入图片描述

十九、vscode

在这里插入图片描述

二十、2D 转换之移动 translate

二维坐标系
在这里插入图片描述

  1. 2D 转换
  • 2D 转换是改变标签在二维平面上的位置和形状

  • 移动: translate

  • 旋转: rotate

  • 缩放: scale

  1. translate 语法
  • x 就是 x 轴上水平移动
  • y 就是 y 轴上水平移动
transform: translate(x, y)
transform: translateX(n)
transfrom: translateY(n)
  1. 重点知识点

    • 2D 的移动主要是指 水平、垂直方向上的移动
    • translate 最大的优点就是不影响其他元素的位置
    • translate 中的100%单位,是相对于本身的宽度和高度来进行计算的
    • 行内标签没有效果
  2. 代码演示

div {background-color: lightseagreen;width: 200px;height: 100px;/* 平移 *//* 水平垂直移动 100px *//* transform: translate(100px, 100px); *//* 水平移动 100px *//* transform: translate(100px, 0) *//* 垂直移动 100px *//* transform: translate(0, 100px) *//* 水平移动 100px *//* transform: translateX(100px); *//* 垂直移动 100px */transform: translateY(100px)
}

二十一、让一个盒子水平垂直居中

<!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: 100%;height: calc(100vh - 12px);background-color: pink;/* 1. 我们tranlate里面的参数是可以用 % *//* 2. 如果里面的参数是 % 移动的距离是 盒子自身的宽度或者高度来对比的 *//* 这里的 50% 就是 50px 因为盒子的宽度是 100px *//* transform: translateX(50%); */}p {position: absolute;top: 50%;left: 50%;width: 200px;height: 200px;background-color: purple;/* margin-top: -100px;margin-left: -100px; *//* translate(-50%, -50%)  盒子往上走自己高度的一半   */transform: translate(-50%, -50%);}span {/* translate 对于行内元素是无效的 */transform: translate(300px, 300px);}</style>
</head><body><div><p></p></div><!-- <span>123</span> -->
</body></html>

相关文章:

  • 北京网站建设多少钱?
  • 辽宁网页制作哪家好_网站建设
  • 高端品牌网站建设_汉中网站制作
  • KV260 进阶开发(PYNQ驱动开发+Pixel Pack)
  • 数据库的操作:SQL语言的介绍
  • 5个AI绘画免费,支持Midjourney【亲测有效】
  • 大二上学期详细学习计划
  • AI电商,如何提高设计效率?
  • Redis 多线程模型详解
  • Linux cut命令详解使用:掌握高效文本切割
  • jackson 中常用注解说明
  • Leetcode 3282. Reach End of Array With Max Score
  • JVM源码解析
  • 第一篇 第3章 不确定型分析 第4章 设备更新分析 第5章价值工程
  • 多个vue项目部署到nginx服务器
  • Java 21的Preferences API的笔记
  • java 长连接中的sse与websocket含义, 两者的区别
  • 【Java】解决项目启动时端口被占用
  • 《微软的软件测试之道》成书始末、出版宣告、补充致谢名单及相关信息
  • 【node学习】协程
  • C# 免费离线人脸识别 2.0 Demo
  • C学习-枚举(九)
  • Java基本数据类型之Number
  • Linux CTF 逆向入门
  • Redis提升并发能力 | 从0开始构建SpringCloud微服务(2)
  • V4L2视频输入框架概述
  • 基于web的全景—— Pannellum小试
  • 使用iElevator.js模拟segmentfault的文章标题导航
  • 数据结构java版之冒泡排序及优化
  • 携程小程序初体验
  • 一个普通的 5 年iOS开发者的自我总结,以及5年开发经历和感想!
  • 再谈express与koa的对比
  • ​【C语言】长篇详解,字符系列篇3-----strstr,strtok,strerror字符串函数的使用【图文详解​】
  • ​软考-高级-系统架构设计师教程(清华第2版)【第15章 面向服务架构设计理论与实践(P527~554)-思维导图】​
  • ### Cause: com.mysql.jdbc.exceptions.jdbc4.MySQLTr
  • (二)PySpark3:SparkSQL编程
  • (每日持续更新)jdk api之FileFilter基础、应用、实战
  • (企业 / 公司项目)前端使用pingyin-pro将汉字转成拼音
  • (一)utf8mb4_general_ci 和 utf8mb4_unicode_ci 适用排序和比较规则场景
  • (转)Google的Objective-C编码规范
  • (转载)OpenStack Hacker养成指南
  • (轉)JSON.stringify 语法实例讲解
  • .Family_物联网
  • .libPaths()设置包加载目录
  • .NET Framework 4.6.2改进了WPF和安全性
  • .NET 反射的使用
  • .NET 某和OA办公系统全局绕过漏洞分析
  • .net 生成二级域名
  • .NET 通过系统影子账户实现权限维持
  • .Net 转战 Android 4.4 日常笔记(4)--按钮事件和国际化
  • .NET(C#) Internals: as a developer, .net framework in my eyes
  • .NET/C# 中你可以在代码中写多个 Main 函数,然后按需要随时切换
  • .NET简谈设计模式之(单件模式)
  • .net通过类组装数据转换为json并且传递给对方接口
  • .net最好用的JSON类Newtonsoft.Json获取多级数据SelectToken
  • .php结尾的域名,【php】php正则截取url中域名后的内容
  • /proc/stat文件详解(翻译)
  • @requestBody写与不写的情况