关于H5、CSS3新增的一些元素及属性

H5简介

HTML5是HTML最新的修订版本,具有新的元素,属性和行为。 HTML5规范于2014年10月29日由万维网联盟正式宣布。 随着移动化的进程,HTML5终将成为主流。

H5的新变化

H5文档声明与字符集的变化

  • 简化了文档声明: <!DOCTYPE html>

  • 简化了字符集:<meta charset="UTF-8">

新特性

  • 新增语义化元素

  • 新增表单相关新元素、新属性

  • 新增了全局属性

  • 新增API(应用程序接口):

    • canvas绘图

    • 多媒体(视频、音频)

    • 本地存储,离线存储、

    • 地理信息

移除的元素(了解)

  • 以下的 HTML 4.01 标签在HTML5中已经被删除:

    ● <acronym> 定义只取首字母缩写
    ● <applet> 规定 Java applet 的文件名
    ● <basefont> 定义文档中所有文本的默认颜色、大小和字体
    ● <big> 呈现大号字体效果
    ● <center> 标签控制文本的居中显示
    ● <dir> <dir> 标签定义目录列表
    ● <font> 标签规定文本的字体、字体尺寸、字体颜色
    ● <frame> 标签定义 frameset 中的一个特定的窗口(框架)
    ● <frameset> frameset 元素可定义一个框架集
    ● <noframes> noframes标签向浏览器显示无法处理框架的提示文本
    ● <strike> strike 标签可定义加删除线文本定义。
  • 提示:由于H5是向前兼容的,所以在H5中使用这些标签也不会报错或出现异常,但这些元素在H5中已不被W3C标准推荐,建议尽量不要使用。

现状

HTML5 仍处于完善之中。然而,大部分现代浏览器已经具备了某些 HTML5 支持。

H5新增的语义元素

HTML5新增了页眉、页脚、内容块等文档结构相关的标签,可以使文档结构更加清晰明确。

article

  • 语法:

    <article></article>
  • 作用:元素表示文档、页面、应用或网站中的独立结构,可以成为可独立分配的或可复用的结构。

  • 典型应用:论坛帖子、杂志或新闻文章、博客、用户提交的评论、交互式组,或者其他独立的内容项目

  • 注意:

    • 每个article通常包括标题(h1 - h6元素)作为article元素的子元素

    • 可能包含一个或多个section

section

  • 语法:

    <section></section>
  • 作用:

    • 定义文档中的节(页面中内容的区段、文章中的章节)。

  • 典型应用:

文章中的章节

  • 注意:

  • 样式上的分区用div,内容结构上的分区用section

    • 一个section元素通常由内容及标题组成

nav

  • 语法

    <nav></nav>
  • 作用:定义导航链接的部分

  • 典型应用:主导航、侧边栏导航、页内导航、菜单、面包屑导航、分页、目录和索引等

aside

  • 语法

    <aside></aside>
  • 语义:定义当前页面或文章的附属信息部分

  • 典型应用:侧边栏、标注框、广告等

header

  • 语法

    <header></header>
  • 语义:定义整个文档或文档中一个节段的的头部(页眉)。 作为文档的头部通常搜索表单、相关的logo、站点的名称以及水平菜单(如果有的话)等。 作为一个节段的头部,通常包含了节段的标题和作者名字等。

  • 典型应用:整个页面的头部、文章页的包含标题部分的头部

footer

  • 语法:

    <header></header>
  • 作用:定义文档或节的页脚 作为文档的页脚通常会包含版权信息和法律声明以及一些其他链接 作为区块的页脚,一个页脚通常包含该章节作者、版权数据或者与文档相关的链接等信息。

  • 典型应用:网页中的版权信息,相关阅读链接

<article>, <section>, <aside>, and <nav> 可以拥有它们自己的 <footer> 

兼容问题

问题概述:IE8浏览器中还没有添加对HTML5新标签的支持,当在页面中使用HTML5新标签时,新标签被当作错误处理(IE浏览器中演示解析结果)

解决方案

一、通过document.createElement(tagName)方法即可让浏览器识别新标签, 浏览器支持新标签后,还可以为新标签添加CSS样式。

<!--[if lt IE 9]>
  <script>
        document.createElement("header");
        document.createElement("footer");
  </script>
<![endif]-->
 由于创建出来的元素是内联元素,所以需要转换成块级,宽度和高度才能生效
 header,footer,nav,article,section,aside{
 		display: block;
 }

二:使用封装好的插件html5shiv.js解决

html5shiv主要解决HTML5提出的新的元素不被IE6-8识别,这些新元素不能作为父节点包裹子元素,并且不能应用CSS样式

 <!--[if lt IE 9]>
     <script src="html5shiv.js"></script>
<![endif]-->

新增表单元素与相关属性

form

input

type:

select

textarea

H5 新增的input类型

概述:HTML5 拥有多个新的表单输入类型。这些新特性提供了更好的输入控制和验证

search搜索域

  • 作用:搜索域,比如站点搜索或 Google 搜索

  • 代码示例

    <input type="search">

tel电话号码输入域

  • 作用:输入电话号码的文本域

  • 代码示例

    <input type="tel">
    • 移动端配合数字键盘的变化

    • 一般配合pattern 属性来使用

url域

  • 作用: URL 地址的输入域;

  • 说明

    • 在提交表单时,会自动验证 url 域的值,输入不合法无法提交弹出提示     

       

    • 移动端:配合 .com 键盘变化

  • 代码示例

    <input type="url">

email域

  • 作用:包含 e-mail 地址的输入域

  • 说明

    • 在提交表单时,会自动验证 email 域的值

    • 移动端: @ 和 .com 选项的 键盘变化

       

  • 代码示例

    <input type="email">

number数值输入域

  • 作用

    • 作用:包含数值的输入域。

  • 相关属性

    • 通过以下属性设定对所接受的数字的限定

      • max:定义允许的最大值

      • min:定义允许的最小值

      • step:定义合法的数字间隔 (步长)

      • value:定义默认值

  • 代码示例

     <input type="number" value="6" max="10" min="2" step="2">

range一定范围内的数值输入域

  • 作用

    • 用于包含一定范围内数字值的输入域,显示为滑动条。

  • 相关属性

    • 通过以下属性设定对所接受的数字的限定

    • max:定义允许的最大值 min:定义允许的最小值 step:定义合法的数字间隔 value:定义默认值

  • 代码示例

    <input type="range">

color颜色输入域

  • 作用:颜色输入域,用于选取颜色

  • 代码示例

    <input type="color">

时间日期选择器

date日期

  • 作用:选择一个日期(年月日)

  • 代码示例

    <input type="date">

time时间

  • 作用:选择小时分钟

  • 代码示例

    <input type="time">

datetime-local本地时间

  • 作用:选择一个日期和时间 (无时区)

  • 代码示例

    <input type="datetime-local">

提示:

并不是所有的主流浏览器都支持新的input类型, 即使不被支持,仍然可以显示为常规的文本域

测试地址

手机端效果预览

                                           

 

H5 新增表单属性

placeholder属性

  • 作用:提供一种输入提示,描述输入域所期待的值

  • 代码示例

<input type="text" placeholder="请输入手机号码">

min、max 和 step 属性

  • 作用: max 属性规定输入域所允许的最大值。 min 属性规定输入域所允许的最小值。 step 属性为输入域规定合法的数字间隔

  • 代码示例

    <input type="number" value="4" min="2" max="10" step="2">
  • 提示

    适用于range和 number类型

autofocus属性

  • 作用:规定在页面加载完成时,自动地获得焦点

  • 代码示例

    <input type="text" autofocus>

autocomplete属性

  • 作用:当表单元素获取焦点时,会提供选项列表,以供用户选择自动填充

  • 取值

    • on ( 开启)

    • off ( 关闭 )

  • 代码示例

    <form action="">
    	<input type="text" name="username"  autocomplete="off">
    	<input type="submit" value="提交">
    </form>
  • 提示:【该功能与浏览器本身的设置】有关,可能需要首先启用浏览器本身的自动完成功能,才能使autocomplete属性起作用。

required 属性

  • 作用:规定必须在提交之前验证输入域(不能为空),为空则弹出提示,无法提交

  • 代码示例

    <form action="">
    	<input type="text" name="testname2" required>
    	<input type="submit" value="提交">
    </form>

pattern 属性

  • 作用:用于验证 input 域的模式,

    • 提交时会根据指定的模式对输入的值进行验证,

    • 输入合法可以提交输入不合法弹出提示,无法提交

  • 代码示例

    <form action="">
    	<input type="text" name="testname2" pattern="[0-9]">
    	<input type="submit" value="提交">
    </form>

multiple 属性

  • 作用:规定输入域中可选择多个值; 一般用于上传域和email类型的输入域。

    • 用于email域 默认email域不支持输入多个email地址,用于email之后则允许输入多个逗号隔开的email地址

    • 用于file域 默认file类型只支持选择单个文件来上传, 新增的multiple属性可以使它一次性选择多个文件。

  • 代码示例

    <form action="">
    	email域: <input type="email" name="testemail" multiple>
    	文件域: <input type="file" name="testfile" multiple>
    	<input type="submit" value="提交">
    </form>

form 属性

  • 作用:规定表单元素所从属的表单区域form

  • 语法:

    • form 属性必须引用所属表单区域的 id

    • 引用一个以上的表单,使用空格分隔的列表

  • 代码示例

    <form action="#" id="form1">
        <input type="text" name="username"/>
    </form>
    <input type="reset" form="form1">

补充:list属性

<input type="text" list="listOne">

<datalist id="listOne">
    <option value="web"></option>
    <option value="java"></option>
    <option value="javaScript"></option>
</datalist>

新增的多媒体元素

网页中大多数视频、音频是通过插件(比如 Flash)来显示的。

HTML5 规定了网页包含视频、音频的标准方法

视频

在网页上嵌入视频元素的标准,即使用 <video> 元素。

标签

 <video src="video/movie.mp4">
    您的浏览器已out,不支持欣赏视频
</video>

标签兼容

video元素在ie9以下不支持

	 允许在开始和结束中间放置内容,用于在不支持的浏览器显示

属性

  • src="" 视频资源地址

  • controls 显示播放、暂停控件

  • loop 循环播放

  • muted 静音

  • autoplay 自动播放

  • width="500" height="1000" 宽高只指定一个,另一个按原比例等比缩放,(播放控件的大小)

  • poster = " 图片地址表示视频封面"

  • 代码示例

 <video src="video/movie.mp4" controls loop muted width="500" poster="video/pic.png">
    您的浏览器已out,不支持欣赏小视频
</video>

支持的视频格式

 

source标签

    <video controls loop muted height="500" poster="video/pic.png">
        <source src="video/PPAP.webm" type="video/webm">
        <source src="video/movie.mp4" type="video/mp4">
        <source src="video/butterfly.ogg" type="video/">
        您的浏览器已out,不支持欣赏小视频
    </video>
  • 允许使用source标签 引入多个音频资源

  • 浏览器会播放第一个【可识别】的格式

音频

在网页上嵌入视频元素的标准,即使用 <audio> 元素。

标签

 <audio src="audio/hanmai.mp3"></audio>

兼容

audio元素在ie9以下不支持

允许在开始和结束中间放置内容,用于在不支持的浏览器显示

<audio src="audio/hanmai.mp3" controls loop  autoplay>
    您的浏览器已out,不支持欣赏小音乐
</audio>

标签兼容

  • audio元素在ie9以下不支持

	 允许在开始和结束中间放置内容,用于在不支持的浏览器显示

属性

  • src="" 音频资源地址

  • controls 显示播放、暂停控件

  • loop 循环播放

  • muted 静音

  • autoplay 自动播放

支持的音频格式

 

source标签

  <video controls loop autoplay>
        <source src="audio/biubiubiu.ogg" type="audio/ogg">
        <source src="audio/hanmai.mp4" type="video/mp4">
        <source src="audio/PPAP.wav" type="video/webm">
        您的浏览器已out,不支持欣赏小音乐
  </video>
  • 允许使用source标签 引入多个音频资源

  • 浏览器会播放第一个【可识别】的格式

全局属性

使用 data-* 属性来嵌入自定义数据

data-* 属性包括两部分:

  • 属性名不应该包含任何大写字母,并且在前缀 "data-" 之后必须有至少一个字符

  • 属性值可以是任意字符串

<ul>
    <li data-en="HOME">首页</li>
    <li data-en="ABOUT">关于我们</li> 
    <li data-en="Contact">联系我们</li> 
</ul>

CSS3

CSS3概述

CSS3是CSS(层叠样式表)技术的升级版本,最新的 CSS 标准。 在CSS2.1的基础上增加了很多强大的新功能,以帮助开发人员解决一些问题,例如圆角、多背景、透明度、阴影等。 CSS2.1是单一的规范,而CSS3被划分成几个模块组,每个模块组都有自己的规范。这样的好处是整个CSS3的规范发布不会因为某部分而影响其他模块的推进。

CSS3按模块化进行了全新设计,主要的 CSS3 模块:包括:选择器、框模型、背景和边框、文本效果、2D/3D 转换、动画、多列布局、用户界面

现状

现代浏览器已经实现了相当多的 CSS3 属性,CSS3将完全向后兼容

浏览器的私有前缀

概述:CSS3的浏览器私有属性前缀是一些浏览器生产商经常使用的一种方式,用于对新属性的提前支持,暗示该CSS属性或规则尚未成为W3C标准的一部分。当一个属性成为标准,并且被Firefox、Chrome等浏览器的最新版普遍兼容的时候我们可以去掉前缀。

各个主流浏览器的私有前缀

浏览器内核私有前缀浏览器
WebKit内核-webkit-Chrome、Safari
Gecko内核-moz-firefox
Presto内核-o-Opera
Trident内核-ms-IE

autoprefixer插件:

Autoprefixer是一款自动管理浏览器前缀的插件,它可以解析CSS文件并且添加浏览器前缀到CSS内容里,使用Can I Use(caniuse网站)的数据来决定哪些前缀是需要的。

把Autoprefixe添加到资源构建工具后,可以完全忘记有关CSS前缀的东西,只需按照最新的W3C规范来正常书写CSS即可。如果项目需要支持旧版浏览器,可修改browsers参数设置。

写完css之后 按F1 弹窗输入 autoprefixer css

CSS3新增选择器

属性选择器

通过元素属性和属性值选择元素

CSS3新增的属性选择器

  • [attr^=value] 选择指定属性名且属性值【以value开头】的每个元素

  • [attr$=value] 选择带有指定属性名且属性值【以value结尾】所有元素

  • [attr*=value] 选择指定属性名且属性值【包含value】的每个元素

/* 
    div[class^="box"]{
  	  background-color: red;
    } 
*/

/* 
    div[class$="box"]{
    background-color: red;
    } 
*/

[class*="box"]{
	background-color: red;
}

兼容性

 

常用属性选择器列表:

 

结构性伪类选择器

通过结构关系选择元素

css3 新增的结构性伪类

  • :last-child 选择器:匹配属于其父元素的最后一个子元素的每个元素

  • :nth-child( n ) 选择器:匹配属于其父元素的第 n 个子元素

  • :nth-last-child( n ) 选择器:匹配属于其元素的倒数第 n 个子元素的每个元素

  • :first-of-type 选择其父元素的特定类型的首个子元素的每个元素

  • :last-of-type 选择其父元素的特定类型的最后一个子元素的每个元素。

  • :nth-of-type(n):选择器匹配属于父元素的特定类型的第n 个子元素。

  • :nth-last-of-type(n):选择器匹配属于父元素的特定类型的倒数第 n 个子元素的每个元素

    • 说明

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

      • 关键词

        • odd(偶数,even奇数)

      • 公式

        • (an + b),(an - b)

        • 表示周期的长度,n 是计数器(从 0 开始),b 是偏移值

总结child一组与of-type一组的区别

  • nth-child强调结构 关系,优先确定是否是父元素的子元素,在其中找第几个

  • nth-of-type强调类型,选择父元素中指定类型中的第几个

兼容性

 

常用结构性伪类选择器列表 思维导图:

 

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值