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

news2024/11/27 6:41:28

文章目录

    • 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.coloradmin.cn/o/1319034.html

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

相关文章

【设计模式-2.4】创建型——抽象工厂模式

说明&#xff1a;本文介绍设计模式中&#xff0c;创建型设计模式的抽象工厂设计模式&#xff1b; 工厂模式的问题 在【设计模式-2.2】创建型——简单工厂和工厂模式这篇博文中&#xff0c;介绍过飞机大战游戏里&#xff0c;使用简单工厂和工厂模式来创建坦克、飞机、Boss对象…

Pod控制器详解【五】

文章目录 5. Pod控制器详解5.1 Pod控制器介绍5.2 ReplicaSet(RS)5.3 Deployment(Deploy)5.4 Horizontal Pod Autoscaler(HPA)5.5 DaemonSet(DS)5.6 Job5.7 CronJob(CJ) 5. Pod控制器详解 5.1 Pod控制器介绍 Pod是kubernetes的最小管理单元&#xff0c;在kubernetes中&#xf…

雷电4.0.50模拟器Android7.1.2安装xposed框架

官方论坛&#xff1a;https://xdaforums.com/t/official-xposed-for-lollipop-marshmallow-nougat-oreo-v90-beta3-2018-01-29.3034811/ Xposed 有分支 [EdXposed 和 LSPosed] 。 Edxposed框架现在支持android 8.0 - android 9.0 &#xff0c;如果是android 7.0或更早的版本&…

【unity小技巧】使用三种方式实现瞄准瞄具放大变焦效果

最终效果对比 文章目录 最终效果对比前言第一种办法方法二1. 创建URP环境2. 配置 Universal Render Pipeline Asset3. 这里向我们新建一个无光的ShaderGraph4. 主图配置4. 新建材质&#xff0c;挂载5. 下面是shaderGraph 的连线图6. 新增脚本控制ObjectScreenPosition随着瞄准镜…

安卓端出现https请求失败(转)

背景# 某天早上&#xff0c;正在一个会议时&#xff0c;突然好几个同事被叫出去了&#xff1b;后面才知道&#xff0c;是有业务同事反馈到领导那里&#xff0c;我们app里面某个功能异常。 具体是这样&#xff0c;我们安卓版本的app是禁止截屏的&#xff08;应该是app里做了拦…

vue3的大致使用

<template><div class"login_wrap"><div class"form_wrap"> <!-- 账号输入--> <el-form ref"formRef" :model"user" class"demo-dynamic" > <!--prop要跟属性名称对应-->…

呜呜呜我要拿Go赢他~ 入门,Go的最简单的 Web 服务器!

前言 继续接入上章节的呜呜呜我要拿Go赢他~ 入门,Go的基础语法! 的文章现在要学的是Go的最简单的 Web 服务器! 补充 上章节的基础语法-方法声明与调用 方法声明 四个部分&#xff1a; 关键字 func方法名字&#xff1a;首字母是否大写决定了作用域参数列表&#xff1a;返回…

C++面试宝典第6题:访问数组和联合体元素

题目 阅读下面的代码段,并给出程序的输出。 (1)访问数组元素。 int a[] = {61, 62, 63, 64, 65, 66}; int *p = (int *)(&a + 1); printf("%d, %d\n", *(a + 1), *(p - 1)); (2)访问联合体元素。 union {short i;char x[2]; }a;a.x[0] = 10; a.x[1] = 1; …

Qt/C++音视频开发60-坐标拾取/按下鼠标获取矩形区域/转换到视频源真实坐标

一、前言 通过在通道画面上拾取鼠标按下的坐标&#xff0c;然后鼠标移动&#xff0c;直到松开&#xff0c;根据松开的坐标和按下的坐标&#xff0c;绘制一个矩形区域&#xff0c;作为热点或者需要电子放大的区域&#xff0c;拿到这个坐标区域&#xff0c;用途非常多&#xff0…

UE5 C++(二)— 游戏架构介绍

架构关系如下&#xff1a; 这里只简单描述下&#xff0c;具体的查看官方文档 AGameMode: AGameMode 是 AGameModeBase 的子类&#xff0c;拥有一些额外的功能支持多人游戏和旧行为。 所有新建项目默认使用 AGameModeBase。 如果需要此额外行为&#xff0c;可切换到从 AGameM…

【LangChain学习之旅】—(3) LangChain快速构建本地知识库的智能问答系统

【LangChain学习之旅】—&#xff08;3&#xff09; LangChain快速构建本地知识库的智能问答系统 项目及实现框架开发框架核心实现机制数据准备及加载加载文本文本的分割向量数据库存储文本的“嵌入”概念向量数据库概念 相关信息获取RetrievalQA生成回答并展示示例小结 Refere…

云服务器部署vue/node项目

此处以阿里云服务器为例&#xff0c;配置的是LNMP环境 vue部署云服务器&#xff1a; 以阿里云服务为例&#xff0c;端口自定义99 1、在 /usr/share/nginx/html/ 该目录下新建文件夹&#xff0c;该文件夹是部署的打好包的前端项目 例&#xff1a; 2、进入nginx目录配置相关配…

【Qt开发流程】之TCP

概述 TCP&#xff08;Transmission Control Protocol&#xff0c;传输控制协议&#xff09;是一种面向连接的、可靠的、基于字节流的传输协议。它是互联网协议套件中的一部分&#xff0c;用于在网络上可靠地传输数据。 TCP通过建立连接、数据传输和连接终止三个阶段来进行通信…

音频I2S

前言 基于网上资料对相关概念做整理汇总&#xff0c;部分内容引用自文后文章。 学习目标&#xff1a;简单了解相关概念、相关协议。 1 概述 数字音频接口DAI&#xff0c;即Digital Audio Interfaces&#xff0c;顾名思义&#xff0c;DAI表示在板级或板间传输数字音频信…

ELK(八)—Metricbeat部署

目录 介绍修改配置文件启动 Modulenginx开启状态查询配置Nginx module查看是否配置成功 介绍 Metricbeat 是一个轻量级的开源度量数据收集器&#xff0c;用于监控系统和服务。它由 Elastic 公司开发&#xff0c;并作为 Elastic Stack&#xff08;Elasticsearch、Logstash、Kiba…

Ubuntu18.04安装ffmpeg

前言 从本章开始我们将要学习嵌入式音视频的学习了 &#xff0c;使用的瑞芯微的开发板 &#x1f3ac; 个人主页&#xff1a;ChenPi &#x1f43b;推荐专栏1: 《C_ChenPi的博客-CSDN博客》✨✨✨ &#x1f525; 推荐专栏2: 《Linux C应用编程&#xff08;概念类&#xff09;_C…

解决:AttributeError: module ‘scipy.misc’ has no attribute ‘imsave’

解决&#xff1a;AttributeError: module ‘scipy.misc’ has no attribute ‘imsave’ 文章目录 解决&#xff1a;AttributeError: module scipy.misc has no attribute imsave背景报错问题报错翻译报错位置代码报错原因解决方法方法一 scipy版本回退&#xff08;不推荐&#…

【物联网】EMQX(二)——docker快速搭建EMQX 和 MQTTX客户端使用

一、前言 在上一篇文章中&#xff0c;小编向大家介绍了物联网必然会用到的消息服务器EMQ&#xff0c;相信大家也对EMQ有了一定的了解&#xff0c;那么接下来&#xff0c;小编从这篇文章正式开始展开对EMQ的学习教程&#xff0c;本章节来记录一下如何对EMQ进行安装。 二、使用…

P2P如何使用register_attention_control为UNet的CrossAttention关联AttentionStore

上次的调试到这里了&#xff0c;写完这篇接着看&#xff0c;prepare_latents_ddim_inverted 如何预计算 inversion latents&#xff1a; /home/pgao/yue/FateZero/video_diffusion/pipelines/p2p_ddim_spatial_temporal.py 1. 原始的UNet3D的CrossAttention和SparseCausalAtte…

展示一段比较简单的人工智能自动做模型的程序

人工智能是一种模拟或模仿人类智能的技术。它通过使计算机系统具有一定的认知能力和学习能力&#xff0c;使其能够自动完成一系列复杂的任务。人工智能可以在各个领域应用&#xff0c;包括图像识别、语音识别、自然语言处理、机器学习等。人工智能还可以用于解决各种问题&#…