首页 前端知识 HTML5 基础与CSS3 应用

HTML5 基础与CSS3 应用

2024-06-20 00:06:10 前端知识 前端哥 1002 955 我要收藏

HTML5 文档结构

        HTML5 文档结构同样是由头部和主体两部分组成,只是 新增了一些结构元素,如header、nav、article、section、 aside、footer 六个结构元素,这些元素都是块级元素。

语法:

<!DOCTYPE html>
<html lang="en">
  <head>
    <meta charset="UTF-8" />
    <meta name="viewport" content="width=device-width, initial-scale=1.0" />
    <title>HTML5文档结构</title>
  </head>
  <body>
    <header>
      <nav></nav>
    </header>
    <article>
      <section></section>
    </article>
    <aside></aside>
    <footer></footer>
  </body>
</html>

HTML5 新增结构元素 

1.header 标记

        header 标记定义文档和区域的页眉,通常是一些引导和 导航信息。它不局限于写在网页头部,也可以写在网页内容里 面。通常标记至少包含(但不局限于)一个标题标 记(h1~h6),也可以包括hgroup(标题组合)标记、表格 标识、搜索表单、导航等。

<!DOCTYPE html>
<html lang="en">
  <head>
    <meta charset="UTF-8" />
    <meta name="viewport" content="width=device-width, initial-scale=1.0" />
    <title>HTML5文档结构</title>
  </head>
  <body>
    <header>
      <hgroup>
        <h1>HTML5是下一代HTML。</h1>
        <h3>什么是HTML5?</h3>
        <h5>HTML5将成为HTML,XHTML以及HTML DOM的新标准。</h5>
      </hgroup>
    </header>
  </body>
</html>

 

2.nav 标记

        nav 标记代表页面的一个部分,是一个可以作为页面导航的链 接组。建议不要在footer元素中使用nav 元素,否则易造成页面显 示不正确。配置相应的CSS 代码可以实现水平导航。

<!DOCTYPE html>
<html lang="en">
  <head>
    <meta charset="UTF-8" />
    <meta name="viewport" content="width=device-width, initial-scale=1.0" />
    <title>HTML5文档结构</title>
  </head>
  <body>
    <header>
      <hgroup>
       <nav>
		<ul>
			<li><a href="#">HTML 参考手册</a></li>
			<li><a href="#">HTML 实例</a></li>
			<li><a href="#">HTML 测验</a></li>
		</ul>
	   </nav>
    </header>
  </body>
</html>

 

3.article标记

        article代表一个独立的、完整的相关内容块,可独立于页面其 它内容使用。例如论坛帖子、博客文章、新闻故事、评论等。

        一般来说,article会有标题部分,通常包含在header内,有时 也会包含footer。article标记可以嵌套,内层的article对外层的 article标记有隶属关系。例如1篇博客的文章可以用article显示, 然后后续的一些评论可以用article的形式嵌入其中。

<!DOCTYPE html>
<html lang="en">
  <head>
    <meta charset="UTF-8" />
    <meta name="viewport" content="width=device-width, initial-scale=1.0" />
    <title></title>
  </head>
  <body>
    <article>
      <header>
        <hgroup>
          <h1>HTML 5结构元素简介</h1>
        </hgroup>
        <time datetime="2024-05-30">2024-05-30</time>
      </header>
      <p>可以的</p>
    </article>
  </body>
</html>

4.section 标记

        section 标记定义文档中的节,用于对网站或应用程序中 页面上的内容进行分块,它表示一个与主内容相关的独立区域 ,例如章节、页眉、页脚或文档中的其他部分。会在文档流中 开始一个新的节。

         “article”元素强调整体性与独立性,通常用于标记可以 独立存在的完整内容块,如一篇文章或论坛帖子;

        “section”元素强调对内容进行分块和分组,通常用于标 记页面上的某个特定区域或章节

<!doctype html>
<html lang="en">
<head>
<meta charset="UTF-8">
<title>HTML5结构元素artical和section标记的应用</title>
</head>
<body>
<section>
<h1>section标记</h1>
<p>用来定义文档中的节(section、区段)。比如章节、页眉、页脚或文档中的其他部
分。</p>
</section>
<article>
<h1>article标记</h1>
<p>article标记标识了Web页面中的主要内容。以博客为例,每篇帖子都构成一个重要
内容。</p>
</article>
</body>
</html>

 

5.aside 标记 

        aside(侧栏,也称为旁注)标记用来说明其所包含的内 容与页面主要内容相关,但不是该页面的一部分,类似于使用 括号对正文进行注释。括号中的内容提供关于该元素的一些附 加信息,例如广告、成组的链接、侧栏等。

<!-- edu_13_2_5.html -->
<!DOCTYPE html>
<html lang="en">
  <head>
    <meta charset="UTF-8" />
    <title>HTML5结构元素aside和artical标记的应用</title>
  </head>
  <body>
    <header>我的博客</header>
    <section>
      <article>
        <p>这是页面上重要的内容部分。也许是博客文章。带aside元素。</p>
        <aside
          style="float: right; width: 100px; height: 100px; background: #eeffcc"
        >
          <p>这是第一篇博客文章。</p>
        </aside>
      </article>
      <article>
        <p>这是页面上重要的内容部分。也许是博客文章。不带aside元素</p>
      </article>
    </section>
  </body>
</html>

6.footer 标记 

        footer 标记定义section 或文档的页脚,包含了与页面 、文章或部分内容有关的信息,例如文章的作者或者日期。作 为页面的页脚时,一般包含了版权、相关文件和链接。它与页 眉header 标记用法相同,在一个页面中可以多次使用,若在 一个区段的最后使用footer标记,那么它就相当于该区段的页 脚。

<!DOCTYPE html>
<html lang="en">
  <head>
    <meta charset="UTF-8" />
    <title>HTML5结构元素footer和section标记的应用</title>
  </head>
  <body>
    <footer>
      <div style="text-align: center">
        <section>
          <a href="http://www.caict.ac.cn/" target="_blank">CAICT中国信通院</a>
          <a href="//www.w3.org/" target="_blank">W3C</a>
          <a href="//www.dcloud.io/" target="_blank">DCloud</a>
        </section>
        <span style="padding: 2px 5px">京ICP备12046007号-5</span>
        <span style="padding: 2px 5px">HTML5中国产业联盟版权所有</span>
      </div>
    </footer>
  </body>
</html>

         HTML5除了新增的结构元素header、nav、article、aside、 section、footer外,还增加了新的内联元素(time、meter及 progress等)、新的内嵌元素(video和audio)、新的交互元素( details、datagrid和command等)及其它页面元素。

hgroup 标记

        标题组合hgroup 标记是对网页或区段section 的标题元素( h1~h6)进行组合。例如,在某一区段中需要连续设置多个标题标 记,可以使用hgroup 标记来组合。

基础语法:

<hgroup>

  <h1>标题1</h1>

  <h2>标题2</h2>

  ……

</hgroup>

<!-- edu_13_3_1.html -->
<!DOCTYPE html>
<html lang="en">
  <head>
    <meta charset="UTF-8" />
    <title>HTML5页面元素hgroup标记的应用</title>
  </head>
  <body>
    <hgroup>
      <h1>JSDoc+规范</h1>
      <h2 style="color: red">介绍</h2>
    </hgroup>
    <p style="text-indent: 2em">
      编写JSDoc是为了增强代码的可读性,以及方便导出 API文档。它的规范可参考JSDoc
      3对于代码规范要求高的工程师和JS框架的开发者,熟 悉JSDoc是必须的技能。
    </p>
  </body>
</html>

 

 figure 标记与figcaption 标记

        figure标记用于对元素进行组合,常用于图像与图像描述组合 。figcaption(图题)标记用于定义figure元素的标题(caption) ,可以给一组图像标记定义标题,但figcaption 标记不是必需的。 如果包含了figcaption元素,那么它必须放置在figure元素的第一个 或最后一个子元素的位置上。

基础语法:

<figure>

  <p>图像文件说明内容。</p>

  <img src="" width="" alt="" title="" />

  <figcaption>为图添加标题)</figcaption>

</figure>

 mark 标记与time 标记

        记号mark 标记用来定义带有记号的文本。在需要突出显示文 本时可以使用mark 标记。此标记对关键字做高亮处理(黄底色标注 ),突出显示,标注重点,在搜索方面可以应用。

        时间time 标记用来定义公历的时间(24 小时制)或日期,时 间和时区偏移是可选的。该标记能够以机器可读的方式对日期和时 间进行编码。该标记不会在任何浏览器中呈现任何特殊效果。

1.基本语法

<mark>重点标注的内容</mark> <time>9:00</time>

<!-- 定义时间 -->

<time datetime="2017-05-01" pubdate="pubdate">国际劳动节</time>

        time标记的pubdate属性:指示该标记中的日期/时间是文档的发布日期,取值一般为 “pubdate”。

         time标记的datetime属性:规定相应的时间或日期,不定义该属性时,由元素的内容给 定日期/时间 

details 标记与summary 标记

        细节details标记是一个开关式、交互式控件,用来定义用户可 见的或者隐藏的需求补充细节,任何形式的内容都能被放在该标记 中。该元素的内容对用户是不可见的,除非设置了open属性。

        摘要summary 标记配合使用可以为details定义标题, summary元素应该是details元素的第一个子元素。标题是可见的 ,用户单击标题时,会显示出details。只有Chrome、Safari 6 以 上支持summary标记。

基本语法:

<details open>

  <summary>details的标题</summary>

  <!-- details的详细内容 -->

</details>

 progress 标记与meter 标记

        进度Progress标记用来定义运行中的任务进度(进程)。 该标记有两个属性:max表示规定需要完成的值;value规定 进程的当前值。         

        度量meter 标记定义已知范围或分数值内的标量测量,也 被称为gauge(尺度)。如磁盘用量、CPU使用率等等。meter 标记属性如表所示。

 progress 和meter 标记的应用
<head>
	<meta charset="UTF-8">
	<title>HTML5页面元素progress和meter标记的应用</title>
	</head>
	<body>
	<p><strong>文件下载进度:</strong>
	<progress value="22" max="100">设置属性</progress></p>
	<p><strong>空进度条:</strong><progress>未设置属性</progress></p>
	<p><strong>服务器CPU使用情况:</strong>
	<meter value="0.3" high="0.9" low="0.1" optimum="0.5">3/10</meter></p>
	<p><strong>内存使用情况:</strong><meter value="0.6" max="1" min="0" 
	optimum=".75" >60%</meter></p>
	<p><mark>注释:</mark>IE9以及更早的版本不支持progress、meter 标记。</p>
	</body>
	</html>

 

 input 标记与datalist 标记

        input 标记用于搜集用户信息。详细介绍请参见第12 章, 此处仅介绍通过input 标记的list 属性与datalist 标记的id 属 性进行关联,即将此两个属性的值设置为相同的值,通过 datalist 标记列出所有合法的输入值列表。

        选项列表datalist 标记用来定义input 标记可能的选项列表 。一般与input 标记配合使用,主要用来定义input 可能的值 ,提供“自动完成”的功能,方便用户输入。datalist 标记及 其选项不会被显示出来,只有当用户鼠标盘旋在input 标记域 时,才能看到“▼” ,然后单击“▼”弹出一个下拉列表,提 供用户选择作为用户的输入数据。

案例:

<!DOCTYPE html>
<html lang="en">
  <head>
    <meta charset="UTF-8" />
    <title>HTML5页面元素input和datalist标记的应用</title>
  </head>
  <body>
    <input list="courese" placeholder="请选择课程" />
    <datalist id="courese">
      <option value="HTML5移动应用开发"></option>
      <option value=".NET应用开发"></option>
      <option value="JavaEE应用开发"></option>
      <option value="PHP+MySQL应用开发"></option>
    </datalist>

    <p>
      <mark>注释:</mark>除了IE9和更早版本的IE浏览器以及Safari不支持
      datalist标记,其余均支持。
    </p>
  </body>
</html>

 

HTML5 表单

        表单是HTML 中获取用户输入的手段,HTML5 对表单 系统做了彻底的改造,以适应当前的应用。

         在HTML5 中增加了从用户收集特定类型数据的新方法和 在浏览器中检查数据的能力,但在使用有些新增特性前最好先 检查一下浏览器的支持情况。 

        HTML5给form表单标记新增了一些属性,这些属性是autocomplete、 novalidate。

autocomplete属性

        autocomplete:on|off。属性规定form标记或类型为text、search、url 、tel、email、password、date pickers、range、color的input标记是否 具有自动完成的功能。当表单元素设置了自动完成功能后,会记录用户输入 过的内容,双击表单元素会显示历史输入。

novalidate属性

        novalidate:true|false。属性规定在提交表单时不验证form或类型为 text、search、url、tel、email、password、date pickers、range、 color的input标记。

案例:

<!-- edu_17_4_1.html -->
<!DOCTYPE html>
<html lang="en">
  <head>
    <meta charset="UTF-8" />
    <title>HTML5表单form的autocomplete和novalidate属性的应用</title>
    <script type="text/javascript" src="html5shiv.min.js"></script>
  </head>
  <body>
    <form action="" method="get" novalidate="novalidate" autocomplete="on">
      <fieldset>
        <legend align="center">个人基本信息</legend>
        姓名:<input type="text" name="name" /><br />
        邮箱: <input type="email" name="email" autocomplete="off" /><br />
        <input type="submit" value="提交" />
      </fieldset>
    </form>
    <p>请填写并提交此表单,然后重载页面,来查看自动完成功能是如何工作的。</p>
    <p>请注意,表单的自动完成功能是打开的,而e-mail 域是关闭的。</p>
  </body>
</html>

 

HTML5给input 标记新增的属性

  • height 和width 属性。height 和width 属性规定只适用于image 类型的input 标记的图像高度和宽度。
  • form 属性。form 属性规定输入域所属的一个或多个表单。form 属性必须引用所属表单的id。
  • list 属性。list属性规定输入域的datalist。datalist标记是输入域 的选项列表。当用户将鼠标盘旋在该域上时,并获得焦点后,单击 该域会弹出下拉列表选项,简短的提示在用户输入值前会显示在输 入域上,方便用户快速选择输入。该属性支持类型为text、search 、url、tel、email、password的input标记。
  • placeholder 属性。提供一种提示,描述输入域所期待的值。
  • autofocus属性。autofocus属性规定在页面加载时,该域自动地 获得焦点。该属性适用于所有input标记的类型。

案例:

<!-- edu_13_4_2.html -->
<!DOCTYPE html>
<html lang="en">
  <head>
    <meta charset="UTF-8" />
    <title>HTML5的input标记新增部分属性的应用</title>
  </head>
  <body>
    <fieldset style="text-align: center; border: 1px solid red">
      <legend align="center">用户登录</legend>
      <form name="myform" action="" method="get">
        姓名:
        <input
          type="text"
          name="name"
          placeholder="请输入姓名"
          autofocus="autofocus"
        />
        班级:<input
          type="text"
          name="class"
          placeholder="请输入班级"
          list="class_list"
        />
        <datalist id="class_list">
          <option value="15计算机1班"></option>
          <option value="15软件工程"></option>
          <option value="15信息管理与信息系统"></option>
          <option value="15电子信息工程"></option>
        </datalist>

        <input type="image" src="eg_submit.jpg" width="35" height="35" />
      </form>
      <p>下面的输入域在 form 元素之外,但仍然是表单的一部分。</p>
      密码:<input type="password" name="user_key" form="myform" />
    </fieldset>
  </body>
</html>

 

HTML5 新增的表单属性

  • required 属性。required 属性规定必须在提交之前填写输入域( 不能为空)。required 属性适用于类型为text、search、url、tel 、email、password、date pickers、number、checkbox、 radio、file 的input 标记。属性设置方法为 required= “required”或直接使用该属性required。
  • min、max 和step 属性。min、max 和step 属性用于为包含数字 或日期的input 类型规定限定(约束)。其中max属性规定输入域 所允许的最大值。min 属性规定输入域所允许的最小值。step 属 性为输入域规定合法的数字间隔,例如step= “5” ,则合法的数 是 -5、0、5、10 等。该组属性适用类型为 date pickers、 number、range 的input 标记。 
  • multiple 属性。规定输入域中可选择多个值。适用于类型为email 、file 的input 标记。
  • form overrides 表单重写属性,允许重写form 元素的某些属性设 定。这些重写属性分别是重写表单的action 属性formaction、重 写表单的enctype 属性formenctype、重写表单的method 属性 formmethod、重写表单的novalidate 属性formnovalidate、重 写表单的target 属性formtarget。表单重写属性适用于类型为 submit 和image 的input 标记
  • pattern属性(一般为正则表达式)。规定用于验证input域的模式 。适用于text、search、 url、tel、email、password等类型的 input标记。
HTML5 新增output、keygen、datalist 等表单元素

 1.output 标记

        output 标记定义不同类型的输出。该标记有for、form、 name 三个属性。for 属性用于定义输出域相关的一个或多个元素, 其值为每一元素的id,多个id 之间用空格分隔。form 属性用于定义 输入字段所属的一个或多个表单。name 属性用于定义对象的唯一 名称(表单提交时使用)。

<!-- edu_13_4_4.html -->
<!DOCTYPE html>
<html lang="en">
  <head>
    <meta charset="UTF-8" />
    <title>HTML5的input标记新增部分属性的应用</title>
    <script type="text/javascript" src="html5shiv.js"></script>
  </head>
  <body>
    <form oninput="sum.value=parseInt(num1.value)+parseInt(num2.value)">
      0<input type="range" id="num1" value="50" min="0" max="100" />100 +<input
        type="number"
        id="num2"
        value="50"
      />
      =<output name="sum" for="num1 num2"></output>
    </form>
    <p><strong>注意:</strong>IE浏览器不支持output标记。</p>
  </body>
</html>

 

2.keygen 标记

        keygen 标记用来提供一种验证用户的可靠方法。keygen 元素是 密钥对生成器(key-pairgenerator)。当提交表单时,会生成两 个键:一个是私钥(private key),一个公钥(public key)。

        私钥存储于客户端,公钥则被发送到服务器。公钥可用于之后验证 用户的客户端证书(clientcertificate)。目前,浏览器对此元素 的糟糕的支持度不足以使其成为一种有用的安全标准。

3.datalist 标记

        datalist 标记规定了input 标记可能的选项列表。datalist 标记被 用来为input 标记提供“自动完成”的特性。使用input 标记的list 属性来绑定datalist 元素(list 属性=datalist 的id 属性值)。

HTML5 新增的input 类型

        HTML5 增加很多新的表单输入类型,分别为color、date pickers(日期选择器,包括date、month、week、datetime、 time、datetime-local)、email、number、range、search、 tel、url。目前所有的主流浏览器一般都支持新的input 类型,即使 不被支持,仍可以显示为常规的文本域。

 Input 类型——Date Pickers(日期选择器)

HTML5 提供多个可供选取日期和时间的新输入类型:

(1)date——选取日、月、年。

(2)month——选取月、年。

(3)week——选取周和年。

(4)time——选取时间(小时和分钟)。

(5)datetime——选取时间、日、月、年(UTC 时间)。

(6)datetime-local——选取时间、日、月、年(本地时间)。

<!-- edu_13_4_6.html -->
<!DOCTYPE html>
<html>
  <head>
    <meta charset="UTF-8" />
    <title>表单新增input类型的应用</title>
  </head>
  <body>
    <fieldset>
      <legend align="center">新生报到须知</legend>
      开学日期:<input type="date" /><br />
      开学起始周: <input type="week" name="user_date" /><br />
      开始起始月: <input type="month" name="user_date" /><br />
      交费时间: <input type="time" name="user_date" /><br />
      日期与时间: <input type="datetime" name="user_date" /><br />
      本地日期与时间: <input type="datetime-local" name="user_date" /><br />
      <input type="submit" value="提交" />
      <input type="reset" />
    </fieldset>
  </body>
</html>

 

input 类型:color

        <!-- 从取色器拾取颜色 -->

    <input type="color" name="favcolor">

input 类型:tel。

定义输入电话号码字段

<input type="tel" name="usrtel">

input 类型:email

        email 类型用于包含e-mail 地址的输入域 。在提交表单时,会自动验证email 域的值是否合法有效。

<!-- 自动验证邮箱格式 -->

    <input type="email" name="useremail">

input 类型:number

        number 类型用于包含数值的输入域。 此类型的input 标记常用属性如表所示。

<input type="number" name="mynumber" min="0" max="100">

 

HTML5 新增的input 类型

input 类型:range

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

<input type="range" name="money" min="1" max="1000" step="5">

input 类型:search

        search 类型用于搜索域,例如站点 搜索或Google 搜索。

<input type="search" name="websidesearch">

input 类型:url

        url 类型用于包含URL 地址的输入域。在 提交表单时,会自动验证url 域的值。

<input type="url" name="homepage">

案例:

 

<!-- edu_13_4_7.html -->
<!DOCTYPE html>
<html>
  <head>
    <meta charset="UTF-8" />
    <title>表单新增input类型的应用</title>
  </head>
  <body>
    <fieldset style="width: 500px; height: 200px; padding: 20px 50px">
      <legend align="center">新增其它input类型</legend>
      <form method="post" action="">
        设置颜色:<input type="text" name="color1" id="color1" readonly />
        <input
          type="color"
          name="color2"
          oninput="color1.value=color2.value"
        /><br />
        输入邮箱: <input type="email" name="useremail" /><br />
        站内搜索: <input type="search" name="insidesearch" /><br />
        电话号码: <input type="tel" name="usrtel" /><br />
        个人主页:<input type="url" name="homepage" /><br />
        年龄:<input
          type="range"
          name="age"
          min="1"
          max="120"
          oninput="age_num.value=age.value"
        /><output name="age_num" for="age"></output><br />
        期望薪酬:<input
          type="number"
          name="quantity"
          min="2500"
          max="10000"
          step="100"
          value="2500"
        /><br /><input type="submit" value="提交" />
        <input type="reset" />
      </form>
    </fieldset>
  </body>
</html>

 

HTML5 视频与音频

video 标记及属性

        HTML5 规定了一种通过video 元素来包含视频的标准方法。

        Video 标记支持三种视频格式,分别为MP4、WebM、Ogg。 Video标记提供了播放、暂停和音量控件来控制视频。

1.基本语法

<video src="movie.ogg" width="320" height="240" controls="controls">

  您的浏览器不支持 video标记。

</video>

2.属性说明

        width 和height 属性:控制视频的尺寸。使用时需要设置视频的高度 和宽度,便于视频播放。如果不设置宽度和高度,页面就会根据原始视频 的大小而改变。

        src 属性:规定要播放的视频的url。

        preload:设置该属性,则视频在页面加载时进行加载,并预备播放。 用法<video preload="auto|metadata|none">,auto(一旦页面 加载,则开始加载音频/视频)、metadata(当页面加载后仅加载音频/视 频的元数据)、none(页面加载后不应加载音频/视频)

        loop:设置该属性,则当媒体文件完成播放后再次开始播放。

        poster 属性:用于在视频下载时显示的图像(海报图片),或者在 用户点击播放按钮前显示的图像。如果未设置该属性,则使用视频 的第一帧来代替。赋值方法:poster= “url” 。

         controls属性:设置该属性,则页面上会显示播放控件。浏览器控 件应该包括播放、暂停、定位、音量、全屏切换、字幕(如果可用)、 音轨(如果可用)。

注意:如果浏览器不支持<video >标记,就在<video >与</video>标记之间插入相关提示信息。

         video 标记支持多个source 标记。可以使用source 标记为 video 标记和audio 标记提供多个不同的音频、视频文件,以 解决浏览器支持。如果浏览器支持将使用第一个可识别的格式

<!--edu_13_5_1.html-->
<!DOCTYPE html>
<html>
  <head>
    <meta charset="UTF-8" />
    <title>视频标记的应用</title>
  </head>
  <body>
    <fieldset style="text-align: center; float: left">
      <legend>src属性提供视频文件</legend>
      <video
        src="“movie.ogg”"
        poster="“url”"
        loop
        autoplay
        width="“320”"
        height="“240”"
        controls="“controls“"
      >
        您的浏览器不支持 video标记。
      </video>
    </fieldset>
    <fieldset style="text-align: center; float: left">
      <legend>source标记提供不同的视频文件</legend>
      <video width="320" height="240" controls="controls">
        <source src="movie.ogg" type="video/ogg" />
        <source src="movie.mp4" type="video/mp4" />
        您的浏览器不支持 video标记。
      </video>
    </fieldset>
  </body>
</html>

 

 audio 标记及属性

        HTML5 使用audio 标记能够播放声音文件或者音频流。同样可以使 用source 标记给audio 标记提供不同格式的音频文件,浏览器将使用第一 个支持的音频文件。

<fieldset style="text-align: center; float: left">
  <legend>src属性提供音频文件</legend>
  <audio src="horse.ogg" controls="controls">
    您的浏览器不支持 audio标记(元素)。
  </audio>
</fieldset>
<fieldset style="text-align: center; float: left">
  <legend>source标记提供不同的音频文件</legend>
  <audio controls="controls">
    <source src="horse.ogg" type="audio/ogg" />
    <source src="horse.mp3" type="audio/mpeg" />
    您的浏览器不支持 audio标记(元素)。
  </audio>
</fieldset>

 

 CSS3 基础应用

CSS3 新特性
  • 为了满足Web UI 的开发需求,它提供了一系列强大的功能 ,如许多新的CSS 属性(文字、布局、颜色等)、各种CSS 特效、CSS 动画、元素的变换等。
  • CSS3 被细分为许多“模块” 。CSS2 中已经拆分成小块, 又新增加了一些最重要的CSS3模块,分别为选择器、盒模型 、背景和边框、文字特效、2D/3D 转换、动画、多列布局、 用户界面。许多新的CSS3 属性已在目前主流的浏览器中得 到应用。
CSS3 浏览器兼容性

1.常用的浏览器属性前缀

        为了让CSS样式能够满足不同浏览器版本的需要,需要在样式属性前面 增加一些区分不同浏览器的前缀。

        -webkit-:适用于webkit 核心浏览器,包含Safari、Chrome 等。

        -moz-:适用于Firefox 浏览器等。

        -ms-:适用于IE 浏览器。

        -o-:适用于Opera 浏览器。

在实际开发过程中,为了满足不同浏览器对CSS3新特性的支持,需要如下 声明:

Div{-moz-animation: myfirst 5s; /* Firefox */

-webkit-animation: myfirst 5s; /* Safari 和 Chrome */

-o-animation: myfirst 5s; /* Opera */

-ms-animation: myfirst 5s; /* IE */

animation: myfirst 5s; /* 标准属性写在最后, */

}

2.CSS3 前缀解决方案 

        为了简化开发过程和相关的代码冗余问题,在页面中引入了prefix-free 这个类库,可以自动帮助在CSS 中添加相关的浏览器 特有的前缀属性。

         -prefix-free 是一个JavaScript 工具库,用户再也不需要编写 带有浏览器前缀的CSS代码,在需要的时候,-prefix-free 会自动 帮助添加当前浏览器需要的前缀。引用方式如下:

 3.CSS 样式重置方案

        由于不同的浏览器定义的HTML元素的默认样式不尽相同, 导致页面在不同的浏览器中显示会有一定的差异,为了保护所 有 浏 览 器 默 认 样 式 而 不 是 完 全 去 掉 它 们 , 推 荐 使 用 Normalize.css来统一不同浏览器下的样式。

        用户可以从Github 下载Normalize.css,然后引用到页面 中就可以。也可以在Normalize.css 源码的基础上重新编写, 在必要的时候用自己写的CSS 覆盖默认值。

CSS3 边框  

1.border-radius圆角边框

<!-- edu_13_6_1.html -->
<!DOCTYPE html>
<html lang="en">
  <head>
    <meta charset="UTF-8" />
    <title>CSS3边框的应用</title>
    <style type="text/css">
      div {
        float: left;
        width: 120px;
        height: 120px;
        margin: 50px 80px;
        background: #dadada;
        border: 6px solid #00cc66;
        padding: 10px;
      }
      #div1 {
        border-radius: 25px;
      }
      #div2 {
        border-radius: 25px 50px;
      }
      #div3 {
        border-radius: 80px 100px 60px 120px/50px 60px 70px 70px;
      }
    </style>
  </head>
  <body>
    <h3>CSS3圆角边框</h3>
    <hr />
    <div id="div1" class="">
      <p>半径均相同</p>
    </div>
    <div id="div2" class="">
      <p>左、右对角的半径相同</p>
    </div>
    <div id="div3" class="">
      <p>每个角水平与垂直半径不同</p>
    </div>
  </body>
</html>

 

 2.box-shadow 边框阴影

<!DOCTYPE html>
<html lang="en">
  <head>
    <meta charset="UTF-8" />
    <title>CSS3边框的应用</title>
    <style type="text/css">
      div {
        float: left;
        width: 120px;
        height: 120px;
        margin: 50px 80px;
        background: #dadada;
        border: 6px solid #00cc66;
        padding: 10px;
      }
      #div1 {
        border-radius: 25px;
        box-shadow: 0 0 30px 20px #6699ff inset;
      }
      #div2 {
        border-radius: 25px 50px;
        boxshadow: 0px 0px 45px 10px #9999ff;
      }
      #div3 {
        border-radius: 80px 100px 60px 120px/50px 60px 70px 70px;
        box-shadow: 20px 20px 35px 15px #99ff33;
      }
    </style>
  </head>
  <body>
    <h3>CSS3圆角边框、阴影</h3>
    <hr />
    <div id="div1" class=""><p>半径均相 同,内部阴影</p></div>
    <div id="div2" class=""><p>左、右对 角的半径相同,外部阴影</p></div>
    <div id="div3" class="">
      <p>每个角水 平与垂直半径不同,带水平、垂直偏移的外部阴 影</p>
    </div>
  </body>
</html>

 

 3.border-image 边框图像

  •  border-image-source 属性:使用绝对或相对url 地址指定边框图像的路径。如果只设置border-imagesource属性而其他属性使用缺省值,则图片按照边框宽 度缩放至合适尺寸后安放在边框四角。

border-image-source: url("border.png");

  • border-image-slice 属性:设置边框素材的切割尺 寸。依次是上横切割线,右竖切割线,下横切割线,左 竖切割线。数值分别代表从上、右、下、左边缘向素材 中心延伸的像素/百分比数

border-image-slice: number |% |fill; border-image-slice: 10 10 30 10; 

  • border-image-width 属性:设置边框图像宽度  

 

  • border-image-outset 属性:设置border-image 超出边框的量  

border-image-outset: length | number | percentage | auto; /* 1~4个值 */

  • border-image-repeat 属性(边框图像重复)。该属性用于设置 边框图像的重复方式。 

border-image-repeat: stretch | round | repeat 

         该属性值有三种取值,分别为stretch(拉伸)、round(环绕)、repeat (复制)。

        默认值为stretch。stretch 表示拉伸图像来填充区域;repeat 表示用平铺方式来填充边框背景图,当图片碰到边界时,如果超过则被截 断;round 表示用平铺方式来填充边框背景图,图片会根据边框的尺寸动 态调整图片的大小直至正好可以铺满整个边框。

CSS3 转换transform 属性

1.CSS3 2D 转换

        实现CSS3 2D 转换的常用方法有translate()、rotate()、scale()、 skew()、matrix()。

位移translate(x,y)

        translate(x,y)方法的作用是将元素从当前位置根据给定的x 轴坐 标和y 轴坐标进行移动。translate()方法还提供根据单一轴移动的方 法,分别是translateX()和translateY()。

 旋转rotate(deg)

        可以对元素旋转给定的角度,正值为顺时 针,负值为逆时针。

缩放scale(x, y)

        scale(x,y)方法的作用是缩放指定的元素,参数x 表示元素宽度的缩放倍数,参数 y 表示元素高度的缩放倍数。scale 方法也可以接受负值,当参数x 为负值时,元素 内容会横向倒置;当参数y 为负值时,元素内容会纵向倒置。

transform:scale(x,y);

倾斜skew(deg, deg)

        skew(x,y)是将元素沿X轴和Y轴方向同时倾斜给定的角度,参数x、y分别表示沿 x轴、y轴倾斜的角度。x为正值时,X轴不动(宽度不变),Y轴逆时针倾斜一定角度 ;x为负值时,X轴不动,Y轴顺时针倾斜一定角度。 y为正值时,Y轴不动(高度不 变),X轴顺时针倾斜一定角度;y为负值时,Y轴不动,X轴逆时针倾斜一定角度。

transform-origin:指定元素变形的中心点  

        默认中心点是元素的正中心,即X、Y轴的50% 50% 处。在没有重 置transform-origin改变元素原点位置的情况下,CSS变形进行的旋 转、位移、缩放,扭曲等操作都是以元素自己中心位置进行变形。

综合转换matrix(n,n,n,n,n,n)

        matrix()方法是一个综合性的方法,它综合了上述的移动、旋转 、缩放等功能。matrix()方法有六个参数,包含旋转、缩放、移动 (平移)和倾斜功能。语法如下,参数的作用如下:         transform:matrix(scaleX, skewX, skewY, scaleY, translateX, translateY);/*语法*/

        transform:matrix(a,b,c,d,e,f)一共有六个参数,它对应了一个 3*3的矩阵,书写方向是竖向的

2, CSS3 3D 转换

        CSS3 可以使用3D 转换来对元素进行格式化。常用的3D 转换 方法有rotateX()、rotateY()。

  •  旋转rotateX()方法。 通过rotateX()方法,元素围绕其X 轴以给定的度数进行旋转。
  • 旋转rotateY()方法。 通过rotateY()方法,元素围绕其Y 轴以给定的度数进行旋转。
<!-- edu_13_6_6.html -->
<!DOCTYPE html>
<html lang="en">
  <head>
    <meta charset="UTF-8" />
    <title>CSS3 3D转换</title>
    <script type="text/javascript" src="html5shiv.js"></script>
    <link rel="stylesheet" href="css/normalize.css" type="text/css" />
    <script type="text/javascript" src="js/prefixfree.min.js"></script>
    <style type="text/css">
      div {
        width: 150px;
        height: 80px;
        background: #dadada;
        border: 1px solid #00cc66;
      }
      #div1 {
        transform: rotateX(120deg);
      }
      #div2 {
        transform: rotateY(120deg);
        margin: 10px auto;
      }
      td {
        text-align: left;
        vertical-align: top;
      }
    </style>
  </head>
  <body>
    <table border="1px" align="center" width="450px" height="200px">
      <caption>
        <h3>CSS3 3D转换</h3>
      </caption>
      <tr>
        <td>
          <div id="" class="">
            <p>这是原div</p>
          </div>
          <div id="div1" class="">
            <p>沿X轴旋转这个div</p>
          </div>
        </td>
        <td>
          <div id="" class="">
            <p>这是原div</p>
          </div>
          <div id="div2" class="">
            <p>沿Y轴旋转这个div</p>
          </div>
        </td>
      </tr>
    </table>
  </body>
</html>

 

 CSS3 过渡transition 属性

        transition 属性是一个复合属性,它有四个过渡属性。语法如下:

         transition: property duration timing-function delay; 例: transition: width 2s; /* 宽度上过渡2s */

 Transition-timing-Function的值及描述表

 transition子属性设置语法

 

<!-- edu_13_6_7.html -->
<!DOCTYPE html>
<html lang="en">
  <head>
    <meta charset="UTF-8" />
    <title>CSS3 过渡</title>
    <script type="text/javascript" src="html5shiv.js"></script>
    <link rel="stylesheet" href="css/normalize.css" type="text/css" />
    <script type="text/javascript" src="js/prefixfree.min.js"></script>
    <style>
      div {
        width: 100px;
        height: 50px;
        background: #009999;
        color: white;
        font-weight: bold;
        transition: width 2s, height 2s, transform 2s; /* 3个属性过渡 */
      }
      #div1 {
        transition-timing-function: linear;
      }
      #div2 {
        transition-timing-function: ease;
      }
      #div3 {
        transition-timing-function: ease-in;
      }
      #div4 {
        transition-timing-function: ease-out;
      }
      #div5 {
        transition-timing-function: ease-in-out;
      }
      div:hover {
        width: 200px;
        height: 100px;
        transform: rotate(60deg);
        /* 盘旋时过渡+旋转 */
      }
    </style>
  </head>
  <body>
    <h3>CSS3 过渡transition与transform综合应用</h3>
    <hr color="red" />
    <div id="div1" style="top: 100px">linear</div>
    <div id="div2" style="top: 150px">ease</div>
    <div id="div3" style="top: 200px">ease-in</div>
    <div id="div4" style="top: 250px">ease-out</div>
    <div id="div5" style="top: 300px">ease-inout</div>
    <p>
      请把鼠标指针移动到红色的div元素上,就可以看到<mark> 过渡和转换</mark
      >的效果。
    </p>
  </body>
</html>

 

CSS3 动画animation

        CSS3 动画是指元素从一种样式逐渐变化为另一种样式的 效果。通过CSS3的@keyframes(关键帧)规则,可以创建 动画,从而取代动画图片、Flash 动画以及JavaScript编写的 动画。在@keyframes 中规定某项CSS 样式,就能创建由当 前样式逐渐改为新样式的动画效果。

1.CSS3 动画animation 基本语法

 CSS3 动画属性及描述表

 

CSS3 多列属性  

        使用CSS3 多列属性可以创建多个列来对文本进行布局,如同编辑报纸和杂志一样。常 用的CSS3 多列属性主要有column-count、column-gap、column-rule 等。

 CSS3 文本效果

1.文本阴影text-shadow 属性

        基本语法

         text-shadow: h-shadow v-shadow blur color; //语法 text-shadow:2px 2px 8px #FF0000;//示例

        语法说明

        text-shadow 属性向文本添加一个或多个阴影。其中h-shadow 定义阴 影在水平方向(即X轴)上的偏移量,允许负值,必需;v-shadow 定义阴 影在垂直方向(即Y轴)上的偏移量,允许负值,必需;

         blur 可选。阴影向外模糊时的范围。值越大,阴影的边缘就越模糊。

         color 可选。阴影的颜色。如果没有指定颜色值,通常会使用当前文本 的颜色

2.空白处理white-space属性

基本语法:white-space: normal| nowrap | pre | pre-wrap| pre-line | inherit ;

 语法说明

  • normal:默认。空白会被浏览器忽略,自适应容器的边界换行。
  • nowrap:文本不会换行,在同一行上显示,直到遇到<br>标记为止。
  • pre:浏览器会保留空白不换行。与标记功能类似。
  • pre-wrap:保留空白符序列,并自适应容器的边界进行换行。
  • pre-line:空白序列将折叠为单个空白,并自适应容器的边界进行换行
  • inherit:规定应该从父元素继承white-space属性的值。
3.控制换行word-wrap 属性

基本语法:word-wrap: normal|break-word;

 语法说明

        word-wrap 自动换行属性允许强制文本进行换行,会对 单词进行拆分。

        该属性有两个值:normal、break-word 。其中normal 表示只在允许的断字点换行(浏览器保持默 认处理);break-word 表示在长单词或 URL 地址内部进 行换行。

4.文本溢出text-overflow 属性

基本语法:text-overflow: clip|ellipsis|string;

 语法说明

        text-overflow: 属性规定当文本溢出包含元素时发生的事情 。该属性有三个属性值,分别为clip、ellipsis、string。

        其中clip 表示修剪文本;ellipsis 表示显示省略符号来代表被修剪的文本; string 表示使用给定的字符串来代表被修剪的文本,

        但必须与 overflow和white-space属性配合使用,在选择器中需要同时设 置两个属性,其值分别为hidden和nowrap。

HTML5 页面结构

 

转载请注明出处或者链接地址:https://www.qianduange.cn//article/12899.html
标签
评论
发布的文章

jQuery实现简单抽奖大转盘

2024-07-01 23:07:44

jQuery思维导图

2024-07-01 23:07:43

在jQuery中添加表格行

2024-07-01 23:07:36

jquery数据类型转换

2024-07-01 23:07:36

大家推荐的文章
会员中心 联系我 留言建议 回顶部
复制成功!