HTML5和CSS3新特性

news2025/1/18 20:14:19

文章目录

  • 1.HTML5新特性
    • 1.1 概述
    • 1.2 语义化标签
    • 1.3 多媒体标签
      • 1.3.1 视频标签- video
      • 1.3.2 音频标签- audio
    • 1.4 新增的表单元素
    • 1.5 新增表单属性
  • 2.CSS3新特性
    • 2.1新增选择器
      • 2.1.1 属性选择器
      • 2.1.2 结构伪类选择器
        • E:first-child
        • E:nth-child(n)
        • E:nth-child 与 E:nth-of-type 的区别
      • 2.2.1 伪元素选择器
        • 应用场景一: 字体图标
  • 3.盒子模型
  • 4.其他特性
    • 4.1 图标变模糊 -- CSS3滤镜filter
    • 4.2 计算盒子宽度 -- calc 函数
  • 5.CSS3 过渡

1.HTML5新特性

1.1 概述

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

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

1.2 语义化标签

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

<div class=“header”> </div>
<div class=“nav”> </div>
<div class=“content”> </div>
<div class=“footer”> </div>

发展到了HTML5后,新增了一些语义化标签,这样的话更加有利于浏览器的搜索引擎搜索,也方便了网站的seo(Search Engine Optimization,搜索引擎优化),下面就是新增的一些语义化标签

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

1.3 多媒体标签

多媒体标签分为 音频 audio 和视频 video 两个标签 使用它们,我们可以很方便的在页面中嵌入音频和视频,而不再去使用落后的flash和其他浏览器插件了。

1.3.1 视频标签- video

基本使用:

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

使用语法:

 <video src="media/mi.mp4"></video>

在这里插入图片描述

兼容写法:

由于各个浏览器的支持情况不同,所以我们会有一种兼容性的写法,这种写法了解一下即可

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

上面这种写法,浏览器会匹配video标签中的source,如果支持就播放,如果不支持往下匹配,直到没有匹配的格式,就提示文本

video 常用属性:
在这里插入图片描述

  • autoplay 自动播放
    • 注意: 在google浏览器上面,默认禁止了自动播放,如果想要自动播放的效果,需要设置 muted属性
  • width 宽度
  • height 高度
  • loop 循环播放
  • src 播放源
  • muted 静音播放

示例代码:

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

1.3.2 音频标签- audio

基本使用:

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

使用语法:

<audio src="media/music.mp3"></audio>

在这里插入图片描述

兼容写法:

由于各个浏览器的支持情况不同,所以我们会有一种兼容性的写法

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

上面这种写法,浏览器会匹配audio标签中的source,如果支持就播放,如果不支持往下匹配,直到没有匹配的格式,就提示文本

audio 常用属性:
在这里插入图片描述

示例代码:

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

1.4 新增的表单元素

在H5中,也新增加了很多类型的表单

案例代码:

<!-- 我们验证的时候必须添加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>

常见输入类型

text password radio checkbox button file hidden submit reset image

新的输入类型
在这里插入图片描述

类型很多,我们现阶段重点记忆三个number tel search

1.5 新增表单属性

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

2.CSS3新特性

2.1新增选择器

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

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

2.1.1 属性选择器

属性选择器,按照字面意思,都是根据标签中的属性来选择元素
在这里插入图片描述

示例代码:

 /* 只选择 type =text 文本框的input 选取出来 */
input[type=text] {
    color: pink;
}
/* 选择首先是div 然后 具有class属性 并且属性值 必须是 icon开头的这些元素 */
div[class^=icon] {
    color: red;
}
/* 选择首先是section 然后 具有class属性 并且属性值 必须是 data结尾的这些元素 */
section[class$=data] {
    color: blue;
}
  • 属性选择器,按照字面意思,都是根据标签中的属性来选择元素
  • 属性选择器可以根据元素特定属性的来选择元素。 这样就可以不用借助于类或者id选择器
  • 属性选择器也可以选择出来自定义的属性
  • **注意:**类选择器、属性选择器、伪类选择器,权重为 10。

2.1.2 结构伪类选择器

结构伪类选择器主要根据文档结构来选择器元素, 常用于根据父级选择器里面的子元素
在这里插入图片描述

E:first-child

匹配父元素的第一个子元素E

 <style>
    ul li:first-child{
      background-color: red;
    }
  </style>

  <ul>
    <li>列表项一</li>
    <li>列表项二</li>
    <li>列表项三</li>
    <li>列表项四</li>
  </ul>

E:last-child 则是选择到了最后一个li标签

E:nth-child(n)

匹配到父元素的第n个元素

  • 匹配到父元素的第2个子元素

    ul li:nth-child(2){}

  • 匹配到父元素的序号为奇数的子元素

    ul li:nth-child(odd){} odd 是关键字 奇数的意思

  • 匹配到父元素的序号为偶数的子元素

    ul li:nth-child(even){} even偶数

  • 匹配到父元素的前3个子元素

    ul li:nth-child(-n+3){}

    选择器中的 n 是怎么变化的呢?

    因为 n是从 0 ,1,2,3… 一直递增

    所以 -n+3 就变成了

    • n=0 时 -0+3=3
    • n=1时 -1+3=2
    • n=2时 -2+3=1
    • n=3时 -3+3=0

**一些常用的公式: **
在这里插入图片描述

常用的结构伪类选择器是: nth-child(n) {...}

E:nth-child 与 E:nth-of-type 的区别

这里只讲明 E:nth-child(n)E:nth-of-type(n) 的区别 剩下的 E:first-of-type E:last-of-type E:nth-last-of-type(n) 同理做推导即可

<style>
    ul li:nth-child(2){
      /* 字体变成红色 */
        color: red;
    }

    ul li:nth-of-type(2){
      /* 背景变成绿色 */
      background-color: green;
    }
  </style>


  <ul>
    <li>列表项一</li>
    <p>乱来的p标签</p>
    <li>列表项二</li>
    <li>列表项三</li>
    <li>列表项四</li>
  </ul>

在这里插入图片描述

也就是说:

  • E:nth-child(n) 匹配父元素的第n个子元素E,也就是说,nth-child 对父元素里面所有孩子排序选择(序号是固定的) 先找到第n个孩子,然后看看是否和E匹配
  • E:nth-of-type(n) 匹配同类型中的第n个同级兄弟元素E,也就是说,对父元素里面指定子元素进行排序选择。 先去匹配E ,然后再根据E 找第n个孩子

2.2.1 伪元素选择器

伪元素选择器可以帮助我们利用CSS创建新标签元素,而不需要HTML标签,从而简化HTML结构
在这里插入图片描述

示例demo

<style>
    div {
        width: 200px;
        height: 200px;
        background-color: pink;
    }
    /* div::before 权重是2 */
    div::before {
        /* 这个content是必须要写的 */
        content: '我';
    }
    div::after {
        content: '你';
    }
</style>
<body>
    <div>
        111
    </div>
</body>

注意:

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

应用场景一: 字体图标

在实际工作中,字体图标基本上都是用伪元素来实现的,好处在于我们不需要在结构中额外去定义字体图标的标签,通过content属性来设置字体图标的 编码

步骤:

  • 结构中定义div盒子
  • 在style中先申明字体 @font-face
  • 在style中定义after伪元素 div::after{…}
  • 在after伪元素中 设置content属性,属性的值就是字体编码
  • 在after伪元素中 设置font-family的属性
  • 利用定位的方式,让伪元素定位到相应的位置;记住定位口诀:子绝父相
<head>
    ...
    <style>
        @font-face {
            font-family: 'icomoon';
            src: url('fonts/icomoon.eot?1lv3na');
            src: url('fonts/icomoon.eot?1lv3na#iefix') format('embedded-opentype'),
                url('fonts/icomoon.ttf?1lv3na') format('truetype'),
                url('fonts/icomoon.woff?1lv3na') format('woff'),
                url('fonts/icomoon.svg?1lv3na#icomoon') format('svg');
            font-weight: normal;
            font-style: normal;
            font-display: block;
        }
        div {
            position: relative;
            width: 200px;
            height: 35px;
            border: 1px solid red;
        }

        div::after {
            position: absolute;
            top: 10px;
            right: 10px;
            font-family: 'icomoon';
            /* content: ''; */
            content: '\e91e';
            color: red;
            font-size: 18px;
        }
    </style>
</head>
<body>
    <div></div>
</body>

3.盒子模型

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

可以分成两种情况:

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

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

4.其他特性

4.1 图标变模糊 – CSS3滤镜filter

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

语法:

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

4.2 计算盒子宽度 – calc 函数

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

语法:

width: calc();

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

5.CSS3 过渡

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

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

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

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

语法:

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

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.coloradmin.cn/o/755076.html

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈,一经查实,立即删除!

相关文章

7个有用的Prompt参数

ChatGPT和Midjournal使得生成式人工智能的应用程序激增。当涉及到生成式AI时&#xff0c;"prompt"通常指的是作为输入给模型的初始提示或指示。它是一个短语、问题、句子或段落&#xff0c;用来引导模型生成相关的响应或文本。 在使用生成式AI模型时&#xff0c;提供…

form 校验多个表单

有的时候&#xff0c;表单需要拆开多个&#xff0c;这时候就需要校验多个表单 <template><div><div>表单1</div><div class"top"><el-form :model"form" ref"form1" :rules"rules" label-width&quo…

ylb-接口9登录短信发送

总览&#xff1a;&#xff08;总体功能与注册发送短信功能相似&#xff09; 在web模块service.impl包下&#xff0c;创建SmsCodeLoginImpl&#xff0c;实现的还是SmsService接口 package com.bjpowernode.front.service.impl;import com.alibaba.fastjson.JSONObject; impor…

2023机器人操作系统(ROS)暑期学校报名通道开启-转发-

来源请查看&#xff1a; https://mp.weixin.qq.com/s/gVr4pUG2TGT6sCcGKvVnYw 报名等请使用上面给出地址。 面向对象&#xff1a;机器人/人工智能相关专业教师/学生/工程师 要求&#xff1a;ROS零基础/中高级 费用&#xff1a;免费&#xff0c;食宿自理 时间&#xff1a;2023…

3.2 多路复用和多路分用

3.2 多路复用和多路分用 多路复用/分用分用如何工作&#xff1f;无连接分用面向连接的分用面向连接的分用&#xff1a;多线程Web服务器 多路复用/分用 分用如何工作&#xff1f; 主机接收到IP数据报(datagram) 每个数据报携带源IP地址、目的IP地址。每个数据报携带一个传输层的…

Java中字符串相关的类

目录 String类 StringBuffer类 StringBuilder类 String类 String类&#xff1a;代表字符串。Java 程序中的所有字符串字面值&#xff08;如 "abc" &#xff09;都作为此类的实例实现。 String是一个final类&#xff0c;代表不可变的字符序列。 字符串是常量&…

[论文分享]MR-MAE:重构前的模拟:用特征模拟增强屏蔽自动编码器

论文题目&#xff1a;Mimic before Reconstruct: Enhancing Masked Autoencoders with Feature Mimicking 论文地址&#xff1a;https://arxiv.org/abs/2303.05475 代码地址&#xff1a;https://github.com/Alpha-VL/ConvMAE&#xff08;好像并未更新为MR-MAE模型&#xff09; …

不容错过!10个Python自动化办公库免费送!(上)

大家好&#xff0c;这里是程序员晚枫&#xff0c;小红薯也叫这个名。 今天给大家分享一下&#xff0c;花费2周时间整理的Python自动化办公库。 本次内容涵盖了Excel、Word、PPT、PDF、微信、文件处理等所有能在办公场景实现自动化的库&#xff0c;希望能够对大家有所帮助。 提…

部署LAMP 平台(二十四)

提示&#xff1a;文章写完后&#xff0c;目录可以自动生成&#xff0c;如何生成可参考右边的帮助文档 目录 前言 一、概述 二、PHP安装配置 1. PHP的作用 2. PHP安装 2.1 yum安装 2.2 PHP语言简介 三、安装 四、启动 五、书写测试页面 六、客户端访问 七、书写连接数据库页…

C++图形开发(13):得分系统

文章目录 1.定义变量2.得分系统3.分数清零系统4.输出分数5.整段代码 今天来对这个“别碰方块”的游戏进行一个完善&#xff0c;并增加一个得分系统 1.定义变量 首先是定义用于储存得分的变量&#xff1a; int score 0;2.得分系统 那么怎样才能得分呢&#xff1f; 没错&…

数据分析——AB测试应用与实战

摘要 某电商公司非常注重自己的落地页设计&#xff0c;希望通过改进设计来提高转化率。以往该公司全年转化率平均在13%左右&#xff0c;现在希望设计的新页面能够带来更高的转化率&#xff0c;希望新页面的转化率能有2%的提升&#xff0c;达到15%。在正式推出新页面之前&#…

HCIA配置命令集

目录 扩展 交换机 路由器 路由器网关配置 DHCP服务器 Telnet &#xff1a;远程登录协议 静态路由配置 动态路由 OSPF RIP NAT—网络地址转换 ACL—访问控制列表 ACL的分类&#xff1a; 配置 配置基础ACL &#xff1a; 例一&#xff1a; 例二&#xff1a; 配…

微服务 云原生:K8S 核心组件

参考 Kubernetes 官方文档&#xff0c;简要概述 Kubernetes 中的核心组件用途及部分原理。 一个 K8S 集群&#xff0c;可以分为两个部分&#xff1a; 控制平面(Control Plane)。它是一套管理系统&#xff0c;专门来管理集群节点和服务&#xff0c;为集群做出全局决策&#xff…

apache doris数据库集群搭建(二)

1. 概述 该文档主要介绍了主要基于apache doris数据库搭建&#xff08;一&#xff09;的基础上进行集群搭建、升级、扩容操作讲解编写。 2.软硬件需求 Doris 作为一款开源的 MPP 架构 OLAP 数据库&#xff0c;能够运行在绝大多数主流的商用服务器上。为了能够充分运用 MPP 架…

java Exception输出错误详细信息

1、直接输出Exception try {//上传代码} catch (Exception e) {throw new RuntimeException("上传训练数据失败&#xff1a;" e);}输出结果&#xff1a;只输出错误原因&#xff0c;不输出错误发生的位置 2、e.getMessage() throw new RuntimeException("上…

Thymeleaf解析

thymeleaf是一个XML/XHTML/HTML5模板引擎&#xff0c;可用于Web与非Web环境中的应用开发 最开始网站开始发展时&#xff0c;使用HTML展示网页&#xff0c;随着技术的发展和需求变化&#xff0c;出现了前后端交互的页面&#xff0c;不需要使用多个页面去展示一个大同小异的页面。…

Android TvSettings Bug: 密码框无法点击唤起输入法

概述 Android 10 的Box方案&#xff0c; 默认使用的是TvSettings作为系统设置&#xff0c;输入操作的习惯上是使用鼠标&#xff0c;键盘&#xff0c;遥控&#xff0c;日常的场景是没有问题&#xff0c;也不会出现本文中提及的问题。当外接的USB触摸屏后&#xff0c;出现无法点击…

华润燃气牵手腾讯云 数字技术助力燃气行业高质量发展

7月13日&#xff0c;华润燃气与腾讯云正式签署战略合作协议。双方将充分发挥各自优势&#xff0c;探索AI大模型在燃气行业的深度应用&#xff0c;并深耕分布式计算、连接和客户运营等领域&#xff0c;不断提升燃气民生服务的效率、质量&#xff0c;共同推动行业数字化转型和高质…

echarts3D地图+3D柱状图+3D飞线图

echarts版本&#xff1a;5.4.0 echarts-gl版本&#xff1a;2.0.8 示例代码&#xff1a; <template><div><div ref"chinaMap" id"chinaMap" style"width: 90vw;height: 90vh;"></div></div> </template>&l…

【ArcGIS Pro二次开发】(49):村规数据入库【福建省】

之前用Arcpy脚本工具做了一个村规数据入库和主要图纸生成工具。 在使用过程中&#xff0c;感觉对电脑环境比较高&#xff0c;换电脑用经常会一些莫名其妙的错误&#xff0c;bug修得很累。近来随着ArcGIS Pro SDK的熟悉&#xff0c;就有了移植的想法。 这里先把村规数据入库工…