HTML5和CSS3新增特性

HTML5的新特性

HTML5新增的语义化标签

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

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

好图当赏

一千布局我们是用div来做的,但是div对搜索引擎来说是没有语义的

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

HTML5新增了语义化标签:

 

tips:

这种语义化标准主要是针对搜索引擎的

这些新标签页面中可以使用多次

在IE9中,需要把这些元素转换为块级元素

HTML5新增的多媒体标签

 新增的多媒体标签主要包含:

音频:<audio>

视频:<video>

使用他们可以更方便的在页面中嵌入音频和视频,而不再使用flash和其他浏览器插件 

HTML5 在不使用插件的情况下,也可以原生的支持视频格式文件的播放,支持的格式是有限的

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

<video src="文件地址" controls="controls"></video> 

 有些低版本浏览器可能不支持这个格式

video有一些常见的属性:

关于音频,当前的 <audio>元素支持三种音频格式:

<audio src="文件地址" controls="controls"></audio> 
< audio controls="controls" > 
    <source src="happy.mp3" type="audio/mpeg" > 
    <source src="happy.ogg" type="audio/ogg" >
</ audio> 

音频的常见属性:

 

谷歌浏览器吧音频和视频的自动播放给禁止了 

多媒体标签总结:

HTML5新增的input类型

 语义化会更明显

我们需要重点记住number tel search这三个

有了这个提交表单如果格式不一样会报错

HTML5新增的表单属性

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

input::placeholder { 
 color: pink; 
 } 

CSS3的新特性

CSS3现状

新增的CSS3特性有兼容性问题,ie9+才支持

移动端支持优于PC端

不断的改进中

应用相对广泛

CSS新增选择器

CSS新增的选择器可以更加便捷更加自由的选择目标元素

属性选择器

属性选择器可以根据元素特定的属性来选择元素,这样就可以不用借助类或者id选择器

 看到了吗孩子这就是属性选择器

<!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>
        input[value]{
            color: pink;
        }
    </style>
</head>
<body>
    <input type="text" value="请输入">
    <input type="text">
</body>
</html>

 

类选择器,属性选择器,伪类选择器的权重为10

结构伪类选择器

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

这个nth-child可以选择某个父元素的一个或者多个特定的子元素

n可以是数字,关键字和公式

n如果是数字,就是选择第n个子元素,里面的数字从1开始

n 可以是关键字:even 偶数,odd 奇数

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

 

这俩的区别:

1. nth-child 对父元素里面所有孩子排序选择(序号是固定的)

先找到第n个孩子,然后看看是否和E匹配

2. nth-of-type 对父元素里面指定子元素进行排序选择

先去匹配E ,然后再根据E找第n个孩子

小结

 

伪元素选择器

伪元素选择器可以帮助我们利用CSS创建新标签元素,而不需要HTML标签从而简化HTML结构

tips:

1.before 和 after 创建一个元素,但是属于行内元素

2.新创建的这个元素在文档树中是找不到的,所以我们称为伪元素

3.语法: element::before {}

4.before 和 after 必须有 content 属性

5.before 在父元素内容的前面创建元素,after 在父元素内容的后面插入元素

6.伪元素选择器和标签选择器一样,权重为 1

伪元素选择器有使用的场景:伪元素字体图标

p::before { 
 position: absolute; 
 right: 20px; 
 top: 10px; 
 content: '\e91e'; 
 font-size: 20px; 
 }

 这就是,,,伪元素选择器

<!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>
        p{
            position: relative;
            width: 300px;
            height: 100px;
            background-color: pink;
        }
        p::before {
            position: absolute;
            right: 20px;
            top: 10px;
            background-color: aqua;
            content: '>';
            font-size: 20px;
        }
    </style>
</head>
<body>
    <p>你好</p>
</body>
</html>

content是必须要写的,否则显示不出来

伪元素选择器使用场景2:仿土豆效果:

<!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>
        .tudou{
            position: relative;
            width: 500px;
            height: 400px;
        }
        .tudou img{
            width: 100%;
            height: 100%;
        }
        .tudou::before{
            display: none;
            position: absolute;
            top: 0;
            left: 0;
            width: 100%;
            height: 100%;
            content: '';
            background-color: rgb(0,0,0,0.4);
        }
        .tudou:hover::before
        {
            display: block;
        }
    </style>
</head>
<body>
    <div class="tudou">
        <img src="./1714915128_new_IMG-20240503-WA0094.jpg" alt="">
    </div>
</body>
</html>

 

就是这个

然后伪元素还有一个使用场景是:伪元素清除浮动

伪元素清除浮动

1.额外标签法也称为隔墙法,是W3C推荐的做法

2.父级添加overflow属性

3.父级添加after伪元素

4.父级添加双伪元素

这个要求新的空标签必须是块级元素

伪元素清除浮动算是第一种额外标签法的升级和优化

CSS3盒子模型

CSS3中可以通过box-sizing来指定盒模型,有两个值:content-box和border-box

这样计算盒子大小的方式就发生了改变

可以分成两种情况:

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

2. box-sizing: border-box 盒子大小为 width

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

CSS3还有其他特性,了解即可,可以让图片变模糊,计算盒子宽度width:calc函数

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

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

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

 width: calc(100% - 80px);

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

CSS过渡

这是一个重点的特性,过渡(transition)是CSS3中具有颠覆性的特征之一,我们可以在不使用 Flash 动画或 JavaScript 的情况下,当元素从一种样式变换为另一种样式时为元素添加效果。 过渡动画: 是从一个状态 渐渐的过渡到另外一个状态 可以让我们页面更好看,更动感十足,虽然 低版本浏览器不支持(ie9以下版本) 但是不会影响 页面布局。

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

transition: 要过渡的属性 花费时间 运动曲线 何时开始; 

1.属性 : 想要变化的 css 属性, 宽度高度 背景颜色 内外边距都可以 。如果想要所有的属性都 变化过渡, 写一个all 就可以。

2. 花费时间: 单位是 秒(必须写单位) 比如 0.5s

3. 运动曲线: 默认是 ease (可以省略)

4.何时开始 :单位是 秒(必须写单位)可以设置延迟触发时间 默认是 0s (可以省略)

过渡就是谁需要就给谁加

<!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: width .5s;
        }
        div:hover{
            width: 400px;
        }
    </style>
</head>
<body>
    <div></div>
</body>
</html>

如果想要写多个属性,就要利用,进行分割

<!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: width .5s,height .5s;
        }
        div:hover{
            width: 400px;
            height: 400px;
        }
    </style>
</head>
<body>
    <div></div>
</body>
</html>

在Linux阶段我们自己手工搓了一个进度条,很原始(我们后端原始人是这样的)

前端可以实现更优雅的进度条(至少看起来是这样,代码难度肯定是后端高)

<!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>
        .bar{
            width: 250px;
            height: 10px;
            border: 1px solid red;
            border-radius: 7px;
            padding: 1px;
        }
        .bar_in{
            width: 50%;
            height: 100%;
            background-color: red;
            transition: width .8s;
        }
        .bar:hover .bar_in{
            width: 100%;
        }
    </style>
</head>
<body>
    <div class="bar">
        <div class="bar_in">

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

 针对H5和C3有他们自己的相对论

HTML5结构标签本身:

CSS3相关样式:

 

而广义的HTML5是HTML5+CSS3+JS

这是HTML5 MDN的介绍:

https://developer.mozilla.org/zh-CN/docs/Web/Guide/HTML/HTML 

课后作业

制作这样的模块

有点不完全一样但是也还行

<!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>
        .box{
            height: 300px;
            width: 200px;
            background-color: white;
        }
        .box1 img{
            width: 100%;
            height: 180px;
        }
        span{
            font-size: 14px;
            color: #707070;
        }
        .old{
            font-size: 22px;
            color: rgb(226, 49, 49);
            font-weight: 700;
        }
        .new{
            font-weight: 700;
            text-decoration: line-through;
        }
        .box2{
            width: 150px;
            height: 30px;
        }
        .box2-in{
            width: 100px;
            height: 8px;
            border: 1px solid red;
            border-radius: 7px;
            padding: 1px;
        }
        .box2-in-in{
            width: 50%;
            height: 100%;
            background-color: red;
            transition: width .8s;
        }
        .box2-in:hover .box2-in-in{
            width: 100%;
        }
        .box3{
            width: 200px;
            height: 50px;
            color: white;
            font-weight: 700;
            background-color: rgb(179, 25, 27);
            text-align: center;
            line-height: 50px;
        }
    </style>
</head>
<body>
    <div class="box">
        <div class="box1">
            <img src="./1714915128_new_IMG-20240503-WA0094.jpg" alt="">
        </div>
        <span>
            安分守己,苹果石榴,(128G) 银色移动联通电信5G手机
        </span>
        <span class="old">
            $6088
        </span>
        <span class="new">
            $6988
        </span>
        <div class="box2">
            <div class="box2-in">
                <div class="box2-in-in">

                </div>
            </div>
        </div>
        <div class="box3">
            立即抢购
        </div>
    </div>
</body>
</html>

这就是前端

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

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

相关文章

BUUCTF—Reverse—不一样的flag(7)

是不是做习惯了常规的逆向题目&#xff1f;试试这道题&#xff0c;看你在能不能在程序中找到真正的flag&#xff01;注意&#xff1a;flag并非是flag{XXX}形式&#xff0c;就是一个’字符串‘&#xff0c;考验眼力的时候到了&#xff01; 注意&#xff1a;得到的 flag 请包上 f…

通信与网络安全之IPSEC

IPSec&#xff08;IP Security&#xff09;是IETF制定的为保证在Internet上传送数据的安全保密性能的三层隧道加密协议。IPSec在网络层对IP报文提供安全服务。IPSec协议本身定义了如何在IP数据包中增加字段来保证IP包的完整性、 私有性和真实性&#xff0c;以及如何加密数据包。…

树莓派搭建NextCloud:给数据一个安全的家

前言 NAS有很多方案&#xff0c;常见的有 Nextcloud、Seafile、iStoreOS、Synology、ownCloud 和 OpenMediaVault &#xff0c;以下是他们的特点&#xff1a; 1. Nextcloud 优势&#xff1a; 功能全面&#xff1a;支持文件同步、共享、在线文档编辑、视频会议、日历、联系人…

AWS账户注册未完成会收费吗?

在当今云计算的时代&#xff0c;亚马逊网络服务&#xff08;AWS&#xff09;已经成为众多企业和开发者的首选平台。然而&#xff0c;对于许多刚接触云服务的人来说&#xff0c;关于AWS账户注册的费用问题常常引发疑虑&#xff1a;如果我在注册过程中未能完成操作&#xff0c;是…

在线音乐播放器 —— 测试报告

自动化脚本源代码&#xff1a;Java: 利用Java解题与实现部分功能及小项目的代码集合 - Gitee.com 目录 前言 一、项目简介 1.项目背景 2.应用技术 &#xff08;1&#xff09;后端开发 &#xff08;2&#xff09;前端开发 &#xff08;3&#xff09;数据库 二、项目功能…

TCP/IP协议攻击与防范

一、TCP/IP协议攻击介绍 1.1 Internet的结构​ LAN&#xff1a;局域网 WAN&#xff1a;广域网 WLAN&#xff1a;无线局域网 私有IP地址与公有IP地址&#xff1f; 私有地址&#xff1a;A类&#xff1a;10.0.0.0~10.255.255.255 B类&#xff1a;172.16.0.0~172.31.255.255…

Unity ShaderLab 实现3D物体描边

实现思路&#xff1a; 给物体添加第二个材质球&#xff0c;在shader的顶点着色器中使顶点的位置变大&#xff0c;然后在片元着色器中输出描边颜色。 shader Graph实现如下&#xff1a; ShaderLab实现如下&#xff1a; Shader "Custom/Outline" {Properties{[HDR]_…

复合查询和内外连接

文章目录 1. 简单查询2. 多表查询2.1 显示雇员名、雇员工资以及所在部门的名字2.2 显示部门号为10的部门名&#xff0c;员工名和工资2.3 显示各个员工的姓名&#xff0c;工资&#xff0c;及工资级别 3. 自连接4. 子查询4.1 where后的子查询4.1.1 单行子查询4.1.2 多行子查询 (i…

java八股-分布式服务的接口幂等性如何设计?

文章目录 接口幂等token Redis分布式锁 原文视频链接&#xff1a;讲解的流程特别清晰&#xff0c;易懂&#xff0c;收获巨大 【新版Java面试专题视频教程&#xff0c;java八股文面试全套真题深度详解&#xff08;含大厂高频面试真题&#xff09;】 https://www.bilibili.com/…

Windows Serv 2019 虚拟机 安装Oracle19c,图文详情(超详细)

1、下载安装文件 Oracle官网下载直链&#xff1a;https://www.oracle.com/database/technologies/oracle-database-software-downloads.html#db_ee 夸克网盘下载&#xff1a;https://pan.quark.cn/s/1460a663ee83 2、新建 Windows Server 2019 虚拟机 &#xff08;超详细&a…

时间的礼物:如何珍视每一刻

《时间的礼物&#xff1a;如何珍视每一刻》 夫时间者&#xff0c;宇宙之精髓&#xff0c;生命之经纬&#xff0c;悄无声息而流转不息&#xff0c;如织锦之细线&#xff0c;串联古今&#xff0c;贯穿万物。 人生短暂&#xff0c;犹如白驹过隙&#xff0c;倏忽而逝&#xff0c;…

FreeRTOS之vTaskStartScheduler实现分析

FreeRTOS之vTaskStartScheduler实现分析 1 FreeRTOS源码下载地址2 函数接口2.1 函数接口2.2 函数参数简介3 vTaskDelete的调用关系3.1 调用关系3.2 调用关系示意图 4 函数源码分析4.1 vTaskStartScheduler4.2 prvCreateIdleTasks4.2.1 prvCreateIdleTasks4.2.2 xTaskCreate 4.3…

NLP论文速读(EMNLP2024)|多风格可控生成的动态多奖励权重

论文速读|Dynamic Multi-Reward Weighting for Multi-Style Controllable Generation 论文信息&#xff1a; 简介&#xff1a; 本文探讨了文本风格在沟通中的重要性&#xff0c;指出文本风格传达了除原始语义内容之外的多种信息&#xff0c;如人际关系动态&#xff08;例如正式…

【AI】Sklearn

长期更新&#xff0c;建议关注、收藏、点赞。 友情链接&#xff1a; AI中的数学_线代微积分概率论最优化 Python numpy_pandas_matplotlib_spicy 建议路线&#xff1a;机器学习->深度学习->强化学习 目录 预处理模型选择分类实例&#xff1a; 二分类比赛 网格搜索实例&…

Dockerfile打包部署

Dockerfile打包 先找到打包完的目录下创建一个Dockerfile文件 touch Dockerfile 进去文件内编写 vim Dockerfile # 基础镜像 FROM openjdk:8 # author MAINTAINER yxh # 挂载目录 VOLUME /home/project # 创建目录 RUN mkdir -p /home/project # 指定路径 WORKDIR /home/pr…

鸿蒙学习使用模拟器运行应用(开发篇)

文章目录 1、系统类型和运行环境要求2、创建模拟器3、启动和关闭模拟器4、安装应用程序包和上传文件QA:在Windows电脑上启动模拟器&#xff0c;提示未开启Hyper-V 1、系统类型和运行环境要求 Windows 10 企业版、专业版或教育版及以上&#xff0c;且操作系统版本不低于10.0.18…

数组学习后记——递归

数组这块学得有点乱,条理性欠佳。这次正好总结一下。上周的课堂内容没有更新, 因为小白自己也还没来得及吸收呢qwq。也解释一下为什么文中有这么多例题。因为我呢喜欢就着题去分析和学习,直接灌输知识不太能理解,有例子就能及时检验和应用了的。 先看看B3817 基础的双数组…

每天五分钟深度学习:神经网络的前向传播的计算过程(单样本)

本文重点 本节课程我们学习神经网络的输出是如何计算的,这个过程叫做神经网络的前向传播。 神经网络的结构 如上所示是一个具有单隐藏层的神经网络,其中输入层不算神经网络的层数。 在这个神经网络中,x表示输入特征,a表示每个神经元的输出,W表示权重参数。 神经网络的…

C++——多态(下)

目录 引言 多态 4.多态的原理 4.1 虚函数表指针 4.2 多态的原理 5.单继承和多继承关系的虚函数表 5.1 单继承中的虚函数表 5.2 多继承中的虚函数表 结束语 引言 接下来我们继续学习多态。 没有阅读多态&#xff08;上&#xff09;的可以点击下面的链接哦~ C——多态…

【CSS in Depth 2 精译_061】9.4 CSS 中的模式库 + 9.5 本章小结

当前内容所在位置&#xff08;可进入专栏查看其他译好的章节内容&#xff09; 【第九章 CSS 的模块化与作用域】 ✔️ 9.1 模块的定义 9.1.1 模块和全局样式9.1.2 一个简单的 CSS 模块9.1.3 模块的变体9.1.4 多元素模块 9.2 将模块组合为更大的结构 9.2.1 模块中多个职责的拆分…