【HTML5、CSS3】新增特性总结!

文章目录

    • 23 HTML5 新增特性
      • 23.1 语义化标签
      • 23.2 多媒体标签
        • 23.2.1 视频`<video>`标签
        • 23.2.2 音频`<audio>`标签
      • 23.3 `input`属性值
      • 23.4 表单属性
    • 24 CSS3 新增特性
      • 24.1 属性选择器
      • 24.2 结构伪类选择器
        • 24.2.1 选择第n个元素
        • 24.2.2 常用的6个结构伪类选择器
      • 24.3 伪元素选择器
      • 24.5 盒子模型
      • 24.6 模糊滤镜 `filter:blur(5px); `
      • 24.7 calc 函数 `calc() `
      • 24.8 过渡效果 `transition: width 1s;`

23 HTML5 新增特性

23.1 语义化标签

image-20231211144818808

以前我们布局基本上都是使用div盒子,但是div盒子对于搜索引擎而言没有任何语义。我们可以将div再细分一下,生成一些语义化的布局标签。于是,HTML5新增加了一些新的标签、新的表单和新的表单属性等。

image-20231211145147040

注意,这些新特性都有兼容性问题,基本是IE9+以上版本的浏览器才支持。

23.2 多媒体标签

使用多媒体标签可以很方便地在页面中嵌入音频和视频,不再使用flash和其他浏览器插件。

23.2.1 视频<video>标签
<video src="文件路径" controls="controls"></video>

里面可以添加的属性(部分):

  • autoplay: autoplay 视频自动播放(谷歌浏览器还需要添加“静音播放”)
  • controls: controls 显示播放控件
  • width: 100% 设置播放器的宽度
  • height: 400 设置播放器的高度
  • loop: loop 设置循环播放
  • src: “xxx” 视频的url地址
  • poster: imgurl 加载等待的画面图片
  • muted: muted 静音播放
<video src="move.mp4" autoplay="autoplay" muted="muted" controls="controls" loop="loop" width="500px">
</video>

尽量使用mp4格式,对各个浏览器兼容性更好,不行再执行ogg格式的视频,还是不行就显示文字,写法如下:

image-20231211151900092
23.2.2 音频<audio>标签
<audio src="文件路径" controls="controls"></audio>

里面可以添加的属性(部分):

  • autoplay: autoplay 自动播放(谷歌禁用了,JS可以解决)
  • controls: controls 显示控件
  • loop: loop 循环播放
image-20231211152258736

23.3 input属性值

之前的input无论是啥都为text,满足不了所有的需求。于是HTML5新增了以下input属性值:
image-20231211153205789

将这些放到input里面,就会有新的效果。

image-20231211153400995

23.4 表单属性

image-20231211154156155

image-20231211154545983

image-20231211154649468

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

input::placeholder {
	color: pink;
}

同时注意:search和submit是一对的,这两个都需要在form盒子里面,才能够成为一对。

 <form action="">
        <input type="search" name="搜索" id="搜索" required="required">
        <input type="submit" value="提交">
 </form>

24 CSS3 新增特性

  • 新增的CSS3特性有兼容性问题,ie9+才支持
  • 移动端支持优于PC端

24.1 属性选择器

image-20231211162323294

  1. 通过属性选择 input[id]
<!DOCTYPE html>
<html lang="en">

<head>
    <meta charset="UTF-8">
    <meta http-equiv="X-UA-Compatible" content="IE=edge">
    <meta name="viewport" content="width=device-width, initial-scale=1.0">
    <title>Document</title>
    <style>
        input[id] {    /* 有id属性的input才会被选中 */
            background-color: pink;
        }
    </style>
</head>

<body>
    <form action="">
        <input type="search" name="搜索" id="搜索">
        <input type="text" name="搜索" >
    </form>
</body>

</html>
  1. 通过属性值选择 input[type="text"]
<!DOCTYPE html>
<html lang="en">

<head>
    <meta charset="UTF-8">
    <meta http-equiv="X-UA-Compatible" content="IE=edge">
    <meta name="viewport" content="width=device-width, initial-scale=1.0">
    <title>Document</title>
    <style>
        input[type="text"] {    /* type="text"的input才会被选中 */
            background-color: pink;
        }
    </style>
</head>

<body>
    <form action="">
        <input type="search" name="搜索" id="搜索">
        <input type="text" name="搜索" >
    </form>
</body>

</html>
  1. 选择属性值开头/结尾名称相同的标签 input[class^=icon]/ input[class$=icon]
  • 如果想要选取下面前3个text表单,可以使用^,选择属性值为icon开头的所有元素:
<form action="">
        <input type="text" class="icon1">
        <input type="text" class="icon2">
        <input type="text" class="icon3">
    	<input type="text" class="lihaile">
</form>
input[class^=icon]
        {
           background-color: pink;
        }
  • 使用$,选择属性值为icon**结尾**的所有元素:
<form action="">
        <input type="text" class="1icon">
        <input type="text" class="2icon">
        <input type="text" class="3icon">
    	<input type="text" class="lihaile">
</form>
input[class$=icon]
        {
           background-color: pink;
        }
  1. 选择包含某些元素的属性值 input[class*=icon]
<form action="">
        <input type="text" class="1icon1">
        <input type="text" class="2icon2">
        <input type="text" class="3icon3">
    	<input type="text" class="lihaile">
</form>

选取前三个元素,使用 input[class*=icon],选择属性值中包含icon的元素:

input[class*=icon]  /*此处权重为 标签选择器1+属性选择器10=11*/
        {
           background-color: pink;
        }

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

24.2 结构伪类选择器

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

image-20231211163803742

24.2.1 选择第n个元素

当遇到这种情况,我们选择里面的某个元素时,使用class会非常麻烦。

<ul>
        <li></li>
        <li></li>
        <li></li>
        <li></li>
        <li></li>
        <li></li>
        <li></li>
        <li></li>
</ul>
  • 选择里面的第一个元素 li:first-child
ul li:first-child {
            background-color: pink;
        }
  • 选择里面的最后一个元素 li:last-child
ul li:last-child {
            background-color: pink;
        }
  • 选择中间的第几个元素 li:nth-child(3)
ul li:nth-child(3){
            background-color: aqua;
        }
  • 选择里面的所有偶数元素 li:nth-child(even)
ul li:nth-child(even){
            background-color: aqua;
        }
  • 选择里面的所有奇数元素 li:nth-child(odd)
ul li:nth-child(odd){
            background-color: aqua;
        }
  • 依据公式进行选择 li:nth-child(n)
ul li:nth-child(n){
            background-color: aqua;
        }

这里的变量必须用n来表示,用n来表示公式,如:2n,(2n)^2等,其中,n从0开始增加,每次增加1。

image-20231211165838488

24.2.2 常用的6个结构伪类选择器
  • :first-child 得到父元素中的第一个子元素
  • :last-child 得到父元素中最后一个子元素
  • :nth-child(n) 得到父元素中第n个子元素
  • :first-of-type 得到指定类型的第一个子元素
  • :last-of-type 得到指定类型的最后一个子元素
  • :nth-of-type(n) 得到指定类型的第n个子元素

注意::nth-child(n)和:nth-of-type (n) 的区别:

image-20231211171107050

div: nth-child(1)是先从所有子元素中拿到第一个子元素,然后判断是不是div,是则选中,不是则不选。

div: nth-of-type(1)是先拿出父元素中所有的div盒子,然后再选择第一个子div。

24.3 伪元素选择器

当我们想要实现这个小三角image-20231211172353742

或者实现鼠标放在图片上,图片就会有一个小的遮罩的效果image-20231211172448066

往常我们是需要给小三角和遮罩一个div,放到html结构中,很麻烦。

现在,可以利用CSS创建新标签元素,而不需要HTML标签,从而简化HTML结构,语法: element::before {}

image-20231211172150375

  • beforeafter会创建一个行内元素
  • 新创建的这个元素在文档树中是找不到的,所以我们称为伪元素
  • before和after必须有content属性
  • before在父元素内容的前面创建元素,after在父元素内容的后面插入元素
  • 伪元素选择器标签选择器一样,权重为1
<!DOCTYPE html>
<html lang="en">

<head>
    <meta charset="UTF-8">
    <meta http-equiv="X-UA-Compatible" content="IE=edge">
    <meta name="viewport" content="width=device-width, initial-scale=1.0">
    <title>Document</title>
    <style>
        div::before{    /* 权重为1+1=2 */
            content: "你";
        }
        div::after{
            content: "猪";
        }
    </style>
</head>

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

</html>

伪元素就是在父级元素里面的前面/后面插入一个行内元素,如上,我们在父级元素的前面插入一个,在父级元素的后面插入一个

其中伪元素里面必须包含content属性

24.5 盒子模型

原来的盒子模型:边框和padding都会撑大盒子。

现在:

  • box-sizing: content-box; (默认)

    盒子大小为width+padding+border,padding和border撑开盒子

  • box-sizing: border-box;

    盒子大小为width和height,padding和border不会撑开盒子

如下div,最终大小为300*300:

<!DOCTYPE html>
<html lang="en">

<head>
    <meta charset="UTF-8">
    <meta http-equiv="X-UA-Compatible" content="IE=edge">
    <meta name="viewport" content="width=device-width, initial-scale=1.0">
    <title>Document</title>
    <style>
        div{
            width: 300px;
            height: 300px;
            background-color: aqua;
            border: 20px solid black;
            padding: 5px;
            box-sizing: border-box;
        }
    </style>
</head>

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

</html>

24.6 模糊滤镜 filter:blur(5px);

filter属性:将元素加上模糊/颜色偏移等效果

filter:函数();

filter:blur(5px);    blur模糊处理,数值越大越模糊
image-20231211183848027

24.7 calc 函数 calc()

calc() 可以在声明CSS属性值时执行一些计算:

width: calc(100% - 80px);

效果:子盒子永远比父盒子小80像素

注意:括号里面可以使用+- */来计算

24.8 过渡效果 transition: width 1s;

不使用Flash动画和JavaScript就可以实现动画效果(一个样式变化为另一个样式)

transition:变化的属性 花费时间 运动曲线 何时开始
  • 变化的属性:如果宽度变化,那么这里就为width
  • 花费时间:完成变化所需要的时间0.5s
  • 运动曲线:默认为ease
  • 何时开始:默认为0s
<!DOCTYPE html>
<html lang="en">

<head>
    <meta charset="UTF-8">
    <meta http-equiv="X-UA-Compatible" content="IE=edge">
    <meta name="viewport" content="width=device-width, initial-scale=1.0">
    <title>Document</title>
    <style>
        div{
            width: 300px;
            height: 300px;
            transition: width 1s ease 0s;
            background-color: blueviolet
        }
        div:hover{
            width: 600px;
        }
    </style>
</head>

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

</html>

我们定义了一个300X300px的紫色盒子,这个盒子加了一个过渡动画:当鼠标放到盒子上时,就将宽度变为600px,执行时间为1s。

注意:过渡一般搭配hover进行使用

如果想要多个属性同时过渡变化,有两种方式:

  • ①加逗号
transition: width 1s, height 1s;
  • ②直接all
transition: all 1s ease 0s;

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

如若内容造成侵权/违法违规/事实不符,请联系我们进行投诉反馈qq邮箱809451989@qq.com,一经查实,立即删除!

相关文章

Qt for Android设置安卓程序默认横屏+全屏

我的qt版本是5.14.1&#xff0c;网上查到的方法是&#xff0c;把编译出的build文件夹中的AndroidManifest.xml文件复制出来然后修改&#xff0c;然后把修改后的xml文件加入pro文件&#xff0c;语法为ANDROID_PACKAGE_SOURCE_DIR $$PWD/AndroidManifest.xml&#xff08;具体&am…

Window和Linux设置代理和取消代理(http_proxy)

前言 需要git clone下载项目的时候&#xff0c;一直clone不下来&#xff0c;则需要添加代理 特别注意&#xff0c;在图形界面中设置代理之后&#xff0c;还需要在终端命令行中设置&#xff0c;否则终端无法使用 1. Window 临时设置代理&#xff1a; export http_proxyhttp…

【运维笔记】Hyperf正常情况下Xdebug报错死循环解决办法

问题描述 在使用hyperf进行数据库迁移时&#xff0c;迁移报错&#xff1a; 查看报错信息&#xff0c;错误描述是Xdebug检测到死循环&#xff0c;可是打印的堆栈确实正常堆栈&#xff0c;没看到死循环。 寻求解决 gpt 说的跟没说一样。。 google一下 直接把报错信息粘贴上去…

LV.13 D5 uboot概述及SD卡启动盘制作 学习笔记

一、uboot概述 1.1 开发板启动过程 开发板上电后首先运行SOC内部iROM中固化的代码(BL0)&#xff0c;这段代码先对基本的软硬件环境(时钟等...)进行初始化&#xff0c;然后再检测拨码开关位置获取启动方式&#xff0c;然后再将对应存储器中的uboot搬移到内存&#xff0c;然后跳…

如何提高RAG增强的准确性

在一个典型的RAG应用开发中&#xff0c;必要的步骤为文档加载&#xff0c;文档拆分&#xff0c;向量化&#xff0c;向量存储。然后基于向量存储进行相似性查询&#xff0c;或基于向量距离的查询。这类查询就叫检索&#xff0c;LangChain所提供的对应组件就是检索器。 但这种方…

数据分析为何要学统计学(10)——如何进行比率检验

比率检验是通过样本推测某种事件的总体占比水平。要求事件仅有互斥的两种情况&#xff0c;即&#xff0c;概率分别为p与1-p。 比率检验分单样本和双样本两种情况&#xff0c;以下我们分别介绍。 1. 单样本比率检验 形如这样的问题&#xff1a;“小学生近视比例日益提高&#…

mybatis 批量新增(返回主键),批量查询,批量更新数据

1.配置连接允许批量操作 配置url后面 &allowMultiQueriestrue2.数据层 2.1 mapper // 新增void saveNewStudyPartyDatums(List<StudyDatum> list);// 查询List<Party> getParties(Param("partIds") List<Long> partIds); // 更新void updat…

惯性导航基础知识学习----惯性器件相关

&#x1f308;武汉大学惯性导航课程合集是入门惯导的精品课程~ 作为导航路上的鼠鼠我&#xff0c;要开始学习惯性导航了~ 需要达到的要求是大致了解惯导的原理等~ 后期会陆续更新惯导相关的知识和笔记等~ &#x1f42c; 本blog为 武汉大学惯性导航课程 的记录~ 感谢团队提供的开…

实验八 A/D模数转换(汇编与微机原理)

实验目的&#xff1a; 掌握ADC0809模数转换的工作原理。 掌握用ADC0809来进行电压转换的使用方法。 实验内容&#xff1a; 用模数转换器件ADC0809测量外部输入的模拟电压&#xff0c;将转换结果输出到数码管的最右边两位上显示。 实验原理&#xff1a; 0809A/D转换芯片有8…

查询某个类是在哪个JAR的什么版本开始出现的方法

背景 我们在依赖第三方JAR时&#xff0c;同时也会间接的依赖第三方JAR引用的依赖&#xff0c;而当我们项目中某个依赖的版本与第三方JAR依赖的版本不一致时&#xff0c;可能会导致第三方JAR的在运行时无法找到某些方法或类&#xff0c;从而无法正常使用。 如我正在开发的一个…

SpringIOC之作用域Scope

博主介绍:✌全网粉丝5W+,全栈开发工程师,从事多年软件开发,在大厂呆过。持有软件中级、六级等证书。可提供微服务项目搭建与毕业项目实战,博主也曾写过优秀论文,查重率极低,在这方面有丰富的经验✌ 博主作品:《Java项目案例》主要基于SpringBoot+MyBatis/MyBatis-plus+…

JUC并发编程 06——Synchronized与锁升级

一.Java对象内存布局和对象头 在HotSpot虚拟机里&#xff0c;对象在堆内存中的存储布局可以划分为三个部分&#xff1a;对象头(Header) 、实例数据 (Instance Data) 和 对文填充 (Padding)。 对象内部结构分为&#xff1a;对象头、实例数据、对齐填充&#xff08;保证8个字节的…

DPO讲解

PPO算法的pipeline冗长&#xff0c;涉及模型多&#xff0c;资源消耗大&#xff0c;且训练极其不稳定。DPO是斯坦福团队基于PPO推导出的优化算法&#xff0c;去掉了RW训练和RL环节&#xff0c;只需要加载一个推理模型和一个训练模型&#xff0c;直接在偏好数据上进行训练即可&am…

高通平台开发系列讲解(AI篇)如何让MTCNN运行在SNPE

文章目录 一、使用到的工具1.1、SNPE特点1.2、SNPE特点二、环境配置2.1、Snpe的环境配置2.2、opencv的环境配置2.3、caffe的环境配置三、MTCNN网络组成四、基于SNPE运行MTCNN沉淀、分享、成长,让自己和他人都能有所收获!😄 📢本篇章主要介绍如何使用高通平台SNPE运行MTCN…

linux驱动的学习 驱动开发初识

1 设备的概念 在学习驱动和其开发之前&#xff0c;首先要知道所谓驱动&#xff0c;其对象就是设备。 1.1 主设备号&次设备号&#xff1a; 在Linux中&#xff0c;各种设备都以文件的形式存在/dev目录下&#xff0c;称为设备文件。最上层的应用程序可以打开&#xff0c;关…

八股文打卡day2——计算机网络(2)

面试题&#xff1a;讲一下三次握手的过程&#xff1f; 我的回答&#xff1a; 1.客户端发送报文段到服务器&#xff0c;主动建立连接。这个报文段中SYN标志位表示&#xff1a;这个报文段是用于连接的&#xff0c;此时SYN标志位设置为1。其中初始序列号字段包含了客户端的初始序…

BAQ压缩原理

什么是BAQ? BAQ——Block Adaptive Quantization,块自适应量化 BAQ是一种数据压缩算法。 谁提出了BAQ压缩? BAQ压缩原理是由美国NASA JPL的R. Kwok和W.T.K. Johnson在1989年提出的。第一次被用于美国NASA的“麦哲伦金星探测”任务中。 BAQ压缩的目的是什么? 上世纪后半…

机器学习算法---时间序列

类别内容导航机器学习机器学习算法应用场景与评价指标机器学习算法—分类机器学习算法—回归机器学习算法—聚类机器学习算法—异常检测机器学习算法—时间序列数据可视化数据可视化—折线图数据可视化—箱线图数据可视化—柱状图数据可视化—饼图、环形图、雷达图统计学检验箱…

Ubuntu-报错

Hadoop-Eclipse-java&#xff1a;耽误进度的几个报错 错误1&#xff1a;桥接模式与NAT模式相互切换后导致两种模式都不能访问互联网&#xff08;1&#xff09;具体错误&#xff1a;&#xff08;2&#xff09;错误原因&#xff1a;&#xff08;3&#xff09;解决方案&#xff1a…

阿里云部署k8s with kubesphere

阿里云ESC 创建实例 填入密码即可 云上的防火墙相关设置就是安全组 vpc 专有网络 划分私有ip 子网 vpc 隔离环境域 不同的vpc下 即使相同的子网也不互通 使用交换机继续划分子网 停止 释放 不收钱 k8s 服务器 4核8G*1 8核16G *2 git 创建凭证 pipeline 发邮箱 (p124)…