博客列表 >HTML5入门:文档结构、元素和语义化元素

HTML5入门:文档结构、元素和语义化元素

博客学习
博客学习原创
2020年08月07日 16:57:23842浏览

HTML5 入门:文档结构、元素和语义化元素

HTML5 简介

HTML5是超文本标记语言HTML的最新一代标准。相比旧标准,HTML5提高了浏览器的兼容性(支持除 IE 外的大部分主流浏览器),增加了一些新特性(基于javascriptHTMLcssDOM),减少了对外部插件的依赖,这个新标准仍在不断完善之中。

HTML5 文档结构

HTML5 文档的结构与旧标准都为树形结构,一般包括标记(html)、头部(head)、主体(body),还有一个放在最前面的声明(<!DOCTYPE html>)。其中声明为 HTML5 与 HTML4 的最大差别,它指示 web 浏览器使用哪个版本的 HTML 进行编写。

声明、标记、头部、主体的定义和用法

1.声明

  1. //html4的三种声明方法,因为基于SGML规则,需要声明引用DTD。
  2. <!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Frameset//EN"
  3. "http://www.w3.org/TR/html4/frameset.dtd">//
  4. <!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01//EN" "http://www.w3.org/TR/html4/strict.dtd">
  5. <!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN"
  6. "http://www.w3.org/TR/html4/loose.dtd">
  7. //html5的声明方法只有一种,因为不基于SGML,所以不用引用DTD。
  8. <!DOCTYPE HTML>

2.标记(html)

HTML 文档的标记主要规定了文档的开头和结尾,头部(head)和主体(body)都被包含在内,通过<html></html>根元素标签包含。

  1. <!DOCTYPE html>
  2. <!-- lang属性表示文档所用主要语言 -->
  3. <html lang="en">
  4. <head>
  5. <meta charset="UTF-8" />
  6. <meta name="viewport" content="width=device-width, initial-scale=1.0" />
  7. <title></title>
  8. </head>
  9. <body></body>
  10. </html>

3.头部(head)

通过<head></head>标签用于定义文档的头部,它是所有头部元素的容器,其中内容不在页面中显示。可以存放脚本(javascript)、样式表(css)。部分标签也适合存放在 head 里面:<style></style>、<title></title>、<meta>、<script></script>、<link>、<base>。其中 title 为 head 唯一必须元素。

  1. <head>
  2. <!-- meta 元素可提供有关页面的元信息,比如针对搜索引擎和更新频度的描述和关键词。 -->
  3. <meta charset="UTF-8" />
  4. <!-- charset定义了字符编码格式为utf8 -->
  5. <meta name="viewport" content="width=device-width, initial-scale=1.0" />
  6. <!-- name为自由定义名称/值对中的名称,content定义与name相关的元信息 -->
  7. <!-- viewport:视口/视窗 ,定义当前浏览器可以被看到的部分 -->
  8. <title>Document</title>
  9. <!-- title定义了页面的标题 -->
  10. </head>

4.主体(body)

<body></body>是显示内容页面的标签,元素包含文档的所有实际显示内容(比如文本、超链接、图像、表格和列表等等。),是用户真正浏览的区域

示例代码

  1. <!DOCTYPE html>
  2. <html lang="en">
  3. <head>
  4. <meta charset="UTF-8" />
  5. <meta name="viewport" content="width=device-width, initial-scale=1.0" />
  6. <title>PHP中文</title>
  7. </head>
  8. <body>
  9. <!-- 利用div标签元素的传统布局 -->
  10. <div id="header">
  11. <h3>可视内容头部</h3>
  12. </div>
  13. <div id="main">
  14. <h3>可视内容主体</h3>
  15. <h3>hello world!</h3>
  16. </div>
  17. <div id="footer">可视内容页脚</div>
  18. </body>
  19. </html>

运行结果

运行结果


元素和属性

元素

HTML 文档是由 HTML 元素定义的,HTML 元素指的是开始标签到结束标签的所有代码。例如<p>标签/元素</p>所以元素也可以叫做标签实际使用中标签不区分大小写,但最好统一规范用小写,大部分标签有结束标签,记得补全。元素按照显示形式分类,可以分为块元素、内联元素、可变元素(内联块元素)

块元素
  • 独占一行
  • 宽度默认 100%,垂直排列
  • 宽度高度都可控制
  • 可以包含块元素和内联元素
内联元素
  • 和相邻的内联元素在同一行
  • 宽度和高度不可控
  • 宽高就是内容的大小
  • 能包含内联元素和块元素但会被块元素的宽高撑大

属性

元素的属性提供了对元素的信息的描述和控制,通过定义和修改元素属性为网页提供更丰富的内容和样式。所有元素都有三大通用属性style class id,而个别元素会有自己的专属属性例如<a href="">标签</a>中的href。元素标准格式<element name1="value1" name2="value2"></element>其中 element 为元素的名称,属性可选且允许有多个属性,name 是属性的名称,value 是属性的值。

演示代码

  1. <!-- 元素p -->
  2. <p>我是p标签也是p元素</p>
  3. <!-- 常见块元素 -->
  4. <h1>独占一行的块元素</h1>
  5. <div>我是通用块元素div</div>
  6. <p>可以独自设置宽与高</p>
  7. <!-- 常见内联元素/行内元素 -->
  8. <a href="">内联元素都在同一行</a>
  9. <strong>宽高都跟随内容大小</strong>
  10. <span>内联元素包含<em>内联元素</em></span>
  11. <span>内联元素中的<p>块元素</p></span>
  12. <!-- 属性:元素都有三大通用属性 -->
  13. <p style="color:red">style定义样式</p>
  14. <div id="a1">id定义元素在当前页面的唯一性</div>
  15. <div class="a2">class定义具有共同特征的元素集合</div>
  16. <!-- 元素专属属性 href、src、alt-->
  17. <a href="">超链接</a>
  18. <img src="样式等级.png" alt="图片不存在或加载失败" width="100" />

效果图

元素与属性


语义化的结构元素

结构元素分为两种,一种为传统的元素结构,另一种是 HTML5 新增的语义化的结构元素。

传统元素结构

主要是通用块元素 div 通过定义不同的id或者class类划分不同定义出不同的文档内容,从逻辑上进行组织划分。

传统结构代码示例

  1. <!DOCTYPE html>
  2. <html lang="en">
  3. <head>
  4. <meta charset="UTF-8" />
  5. <meta name="viewport" content="width=device-width, initial-scale=1.0" />
  6. <title>PHP中文</title>
  7. </head>
  8. <body>
  9. <!-- 利用div标签元素的传统布局 -->
  10. <div id="header">
  11. <h3>可视内容头部</h3>
  12. </div>
  13. <div id="main">
  14. <h3>可视内容主体</h3>
  15. <h3>hello world!</h3>
  16. </div>
  17. <div id="footer">可视内容页脚</div>
  18. </body>
  19. </html>

语义化结构元素

语义化结构是 HTML55 里新增了一些结构话元素标签,例如:<nav></nav>、<header></header>、<main></main>、<footer></footer>,用来取代传统结构,更好地向开发者和浏览器描述其意义,总结就是用最恰当的标签来标记内容。

优点

  • 更好的呈现出 HTML 文档结构,有利于维护和添加样式
  • 方便其它设备(浏览器)解析
  • 便于搜索引擎(SEO)优化
  • 便于团队开发和维护,减少页面差异化,优化页面加载速度

示例代码

  1. <!-- header头部标签一般用于介绍性内容,logo,标题、图片或者导航元素 -->
  2. <header>
  3. 头部
  4. <nav>导航</nav>
  5. </header>
  6. <!-- main:文档主体功能部分,主要内容存放在此 -->
  7. <main>
  8. <!-- aside:表示和页面内容几乎无关的部分例如广告、引用、侧边栏,即使被单独拆分也不影响整体 -->
  9. <aside>广告或侧边栏</aside>
  10. <!-- section:用于将页面内容划分为多个独立区域,例如章节段落,通常还带有标题 -->
  11. <section>
  12. <h3>标题1</h3>
  13. <!-- article:特殊的section,
  14. 表示文档中的独立结构,其意在成为可独立分配的或可复用的结构,例如论坛的帖子,博客的文章。 -->
  15. <article>
  16. <h3>标题2</h3>
  17. <p>段落1</p>
  18. <section>
  19. <h4>标题3</h4>
  20. <p>段落2</p>
  21. </section>
  22. </article>
  23. </section>
  24. </main>
  25. <!-- footer:表示最近的一个章节或者根元素的页脚,主要放版权数据、作者信息、相关链接 -->
  26. <footer>页脚</footer>

语义化的文本元素

语义化文本元素都有其自身的意义,通常可以通过元素字面上的意思得知其内容。

  1. <!-- 通常存放个人或组织的联系信息 -->
  2. <address>地址:中国广东广州</address>
  3. <!-- time:表示时间日期 -->
  4. <time>2020/07/25</time>
  5. <!-- sup:定义文本区域与主要文本相比更高更小,例如数字上标 -->
  6. 3<sup>3</sup>=9
  7. <!-- del:表示文档被删除的内容 -->
  8. <!-- ins:表示文档新增的内容 -->
  9. <!-- strong:强调文本中的一段内容,会加粗文本内容 -->
  10. 原价:¥<del>200.00</del>&nbsp;现价:¥<strong>99.00</strong>
  11. <ins>促销中</ins>
  12. <!-- code:一般表示一段计算机代码,默认使用等宽字体样式 -->
  13. <code>$config::show(); </code>

语义化文本结构元素效果图:
语义化文本结构元素


链接元素<a></a>

链接元素(锚元素) 通过 href 属性创建指向另一个文档的超链接,也可以实现下载文件,打电话,发邮件,定位同一页面内容(锚点)等功能。

示例代码

  1. <!-- 传统用法,转跳页面的超链接 -->
  2. <!-- target属性:定义链接的文档在何处显示,_blank新标签页,_self默认当前页面加载, -->
  3. <a href="demo4.html" target="_blank">这是一个链接</a>
  4. <!-- 下载文件 download:指示浏览器下载而不是导航到超链接,并预命名下载文件名-->
  5. <a href="笔记.md" download="下载文件名">笔记下载</a>
  6. <!-- 发送邮件 -->
  7. <a href="mailto:exmple@1123.com">邮件</a>
  8. <!-- 打电话 -->
  9. <a href="tel:13800000000">联系人</a>
  10. <!-- 锚点:在当前页面转跳 -->
  11. <a href="#header">返回头部</a>

列表元素

列表分为三种:无序列表<ul></ul>),有序列表(<ol></ol>)和自定义列表(<dt><dl></dl></dt>),不同情景按需选择。可以在一个列表中其他另外一个或者多个列表,并且,一种类型的列表可以与任意类型的列表相互嵌套。列表的表项可以与任何 HTML 元素(如段落、图片、链接等)交叉定义。所有的列表都是由父元素和子元素构成,父元素用于指定要创建的列表类型,子元素用于指定要创建的列表项。

示例代码

  1. <!DOCTYPE html>
  2. <html lang="en">
  3. <head>
  4. <meta charset="UTF-8" />
  5. <meta name="viewport" content="width=device-width, initial-scale=1.0" />
  6. <title>html5结构标签</title>
  7. </head>
  8. <body>
  9. <div id="header">
  10. <!-- 无序列表 -->
  11. <ul>
  12. <li><a href="http://">导航</a></li>
  13. <li><a href="http://">首页</a></li>
  14. <li><a href="http://">新闻</a></li>
  15. <li><a href="http://">关于</a></li>
  16. </ul>
  17. <!-- 列表都可互相嵌套 -->
  18. <!-- 有序列表 -->
  19. <ol>
  20. <li>开始</li>
  21. <li>
  22. 行进
  23. <ul>
  24. <li>css</li>
  25. <li>html</li>
  26. <li>javascript</li>
  27. </ul>
  28. </li>
  29. <li>暂停</li>
  30. <li>结束</li>
  31. </ol>
  32. </div>
  33. <div id="main">
  34. <!-- 通用行内元素span -->
  35. <img src="样式等级.png" />
  36. <span>hello world</span>
  37. </div>
  38. <main style="margin-top: 50px;">
  39. <!-- 语义化的文本元素 方便搜索引擎识别-->
  40. <section class="ads">ad</section>
  41. <article class="content">content</article>
  42. <time>yy/dd/YY</time>
  43. <address>地址</address>
  44. <code type="javascript">
  45. function study(e){ }
  46. </code>
  47. <progress value="70" max="100">进度条</progress>
  48. <!-- 传统用法,转跳页面的超链接 -->
  49. <!-- target属性:定义链接的文档在何处显示,_blank新标签页,_self默认当前页面加载, -->
  50. <a href="demo4.html" target="_blank">这是一个链接</a>
  51. <!-- 下载文件 download:指示浏览器下载而不是导航到超链接,并预命名下载文件名-->
  52. <a href="笔记.md" download="下载文件名">笔记下载</a>
  53. <!-- 发送邮件 -->
  54. <a href="mailto:exmple@1123.com">邮件</a>
  55. <!-- 打电话 -->
  56. <a href="tel:13800000000">联系人</a>
  57. <!-- 锚点:在当前页面转跳 -->
  58. <a href="#header">返回头部</a>
  59. </main>
  60. <div id="footer">
  61. <!-- 自定义列表 -->
  62. <dt>
  63. <dl>首页</dl>
  64. <dl>友情链接</dl>
  65. <dl>网站地图</dl>
  66. </dt>
  67. </div>
  68. </body>
  69. </html>

效果图

列表元素

声明:本文内容转载自脚本之家,由网友自发贡献,版权归原作者所有,如您发现涉嫌抄袭侵权,请联系admin@php.cn 核实处理。
全部评论
文明上网理性发言,请遵守新闻评论服务协议