HTML页面基本结构

2023-11-08

本文简要介绍HTML中的各种元素及其相关属性,读者需要有一个概念: HTML页面都是由基本元素及属性组成的。HTML页面的结构如下。

doctype 声明

HTML 源文件中, 首先出现的是 doctype 声明。 该声明告诉浏览器, 本页面使用何种标记语言编写, 这会影响到浏览器渲染内容的方式。虽然看起来有点复杂,但大部分所见即所得(WYSIWYG)的web编辑器都能自动创建 doctype。如果不使用可视化编辑工具,那也可以从其他网页中拷贝 doctype, 或者参考下面的 doctype 列表。

doctype 是HTML文件中最顶部的那一行, 说明文档是什么类型。在HTML文件中,指的是HTML版本号以及展示风格。以前版本的 doctype 声明看起来很丑,并且也不好记。例如 XHTML 1.0 Strict 声明:

<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Strict//EN"
  "http://www.w3.org/TR/xhtml1/DTD/xhtml1-strict.dtd">

再看HTML4过渡式的写法:

<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN"
  "http://www.w3.org/TR/html4/loose.dtd">

代码编辑器的HTML模板中自动包含了doctype,一般也提供了自动插入的方式。

尽管文档顶部的这一串长长的文本也不碍什么事, 但 HTML5 去除了这些可读性差的写法, 统一使用下面的声明:

 <!doctype html>

简单、而且直接。可以看到,声明中并没有出现版本号 “5”。虽然当前版本被称为 HTML5, 但实际上它只是对HTML之前标准的一个演进。因为浏览器必须支持Web上各种现有的内容, 所以实际上并不需要 doctype 来说明依赖哪些特性。

在HTML 4.01页面中, doctype 看起来是这样的:

<!DOCTYPE html PUBLIC "-//W3C//DTD HTML 4.01//EN""http://www.w3.org/TR/html4/strict.dtd">
<html><head><title>Page title</title></head><body></body></html>

在这个示例中,doctype与HTML 4.01 Strict相关。在下文中,您将看到 HTML 4.01 以及 XHTfML 1.0 , XHTfML 1.1 的示例。虽然很多元素和属性具有相同的名称,但在不同版本的HTML和xhtml中还是存在一些明显的语法差异。详情请参考 HTML Versus XHTML 以及 HTML and XHTML Syntax.

Document 树结构

web页面可以看成是包含任意数量枝干的文档树。每个枝干可以包含哪些元素,有一定的规则(这些内容在每个元素的参考手册中, “Contains”和““Contained by”部分详细的说明)。要理解文档树的概念,可以参考一个简单的web页面,看看其中包含的内容特性, 以及对应的树视图,如图1所示:

Document Tree

图1. 一个简单页面的 Document 树结构

可以看到, html元素实际上包含两个元素: headbodyhead 有两个子元素: metatitlebody 元素可以包含多个 标题(headings)、段落(paragraphs)和 block quote

注意,标签的打开和关闭有对称性。例如,“It has lots of lovely content …”这一段包含三个文本节点,第二个节点被包在 em 元素中(em,强调元素)。 内容结束后段落被关闭,在下一个元素开始之前(本例中是一个 blockquote); 如果将 </p> 标签写在 blockquote 之后, 则会破坏树结构。

html 元素

doctype 之后紧接着出现了 [html] ()元素,这是文档的根元素,接下来的所有内容都是根元素的后代。

如果文档类型为XHTML,那么根元素(root element) html 需要指定 xmlns属性(XML名称空间, html则不需要):

<html xmlns="http://www.w3.org/1999/xhtml">

下面是一个XHTML过渡式页面的示例:

<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN""http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
<html xmlns="http://www.w3.org/1999/xhtml">
<head><title>Page title</title></head>
<body></body>
</html>

html 文档分为两个主要部分: headbody

head 元素

head 元素包含描述文档本身的 metadata 信息,以及相关的资源,比如 JS 脚本和 CSS样式。

下面的简单示例包含了 title 元素, 它表示文档的标题或名称,标识该文档是什么。 title 的内容在浏览器的标题栏上展示,或者是收藏夹中的名称。对于搜索引擎来说, 这也是一个非常重要的信息项,因为这是一段有意义的摘要,下面是示例:

<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN""http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
<html xmlns="http://www.w3.org/1999/xhtml">
<head><title>Page title</title></head>
<body></body>
</html>

除了title元素之外,head 还可以包含:

  • base 定义了页面上的链接或资源的 baseURL, 打开链接内容所对应的基地址。

  • link 指向某种类型的资源, 通常是CSS样式表, 提供了如何展示网页上各种元素的说明。

  • meta 提供了额外的信息; 例如, 字符编码, 页面的内容摘要, 指示搜索引擎是否应该索引内容, 等等。

  • object 代表一个通用的、多功能的媒体对象容器

  • script 用于嵌入脚本, 或者引入外部脚本.

  • style 用于嵌入样式(页面内).

这些元素都是可选的, 可以是任意顺序。注意, 这里的元素不会展示在页面内, 但他们可以影响页面上展示的内容, 这些内容都在 body 元素内定义。

body 元素

页面中的大部分内容都在 body 内。在浏览器窗口(或viewport)中, 可以看到这个元素中包含的所有内容,包括 paragraphs, lists, links, images, tables 等等。body 元素有一些独有的属性,但现在这些属性都被废弃了,除此之外,这个元素几乎没有什么可说的。 页面的外观将完全取决于填充的内容; 参考HTML元素列表,以确定可以包含哪些内容。

原文链接: https://www.sitepoint.com/web-foundations/basic-structure-of-a-web-page/

翻译日期: 2017年6月26日

翻译人员: 铁锚: http://blog.csdn.net/renfufei

本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)

HTML页面基本结构 的相关文章

  • CSS @font-face 在 ie 中不起作用

    我有以下 CSS 可以在 Firefox 中运行 但不能在 IE 中运行 显然 字体在目录中 有什么建议么 font face font family Futura src url fonts Futura Medium BT eot IE
  • 如何使用 jQuery / Javascript 运行浏览器命令?

    我有一页 HTML 格式 有两个按钮 保存和打印 当用户单击 打印 时 它应该打印页面并当用户单击 保存 页面时 应打开该页面的 另存为 框 首选 Javascript jQuery 解决方案 对于打印 您可以使用window print
  • XHTML 合规性毫无意义吗?

    我现在正在构建一个网站 到目前为止 我已经痛苦地强制所有内容都兼容 并且它在浏览器中看起来几乎相同 不过 我开始实现一些第三方 免费的 javascript 它们可以执行添加属性等操作 例如 order 2 我可以解决这个问题 但这很痛苦
  • 使用 XML 代替 HTML 创建网页有哪些优点?

    有时 我会看到内容仅用 XML 而不是 HTML 或 XHTML 编写的网页 这些页面通常附加一些样式表 XSLT 或 CSS 这使得它们看起来像任何其他普通网页 我的问题是 这种方法有什么优点 如果有的话 为什么有人会选择这种方式 EDI
  • 显示:内联块额外边距[重复]

    这个问题在这里已经有答案了 我正在和几个人一起工作div被设置为display inline block并有一套height and width 在 HTML 中 如果每个后面有一个换行符divdiv 的右侧和底部会自动添加 5 像素边距
  • 通过 ajax 刷新数据时覆盖表单“重置”行为

    我依靠表单的 重置 行为来取消编辑 我面临的问题是 一旦发布数据通过ajax更新 重置仍然会恢复到最初随页面加载的数据 所以基本上我需要做的是 重置 重置 功能 合理 尝试这个 yourForm bind reset function re
  • 官方 XSLT 验证器?

    有没有官方的 XSLT 验证器 例如http validator w3 org http validator w3 org 对于 HTML 和 XHTML I know http validator w3 org http validato
  • 为什么 XHTML 中的


    不同?

    这是 HTML 页面的完整源代码 one br two br three br four 谁能解释为什么当我在 IE8 或 chrome 中查看页面时 三 和 四 之间会出现额外的空行 我认为标准应该让所有浏览器看起来都一样 据我所知 这个
  • @font-face 在 Firefox 中不起作用?

    这是由 FontSquirrel 生成的代码 在所有其他浏览器 包括 IE 中都可以正常工作 但在强大的 Firefox 中却不行 我究竟做错了什么 ps 我使用的是FF3 5 如果您无法查看我的示例 请参阅以下来源
  • 您将如何做到这一点:表格还是 CSS? [关闭]

    就目前情况而言 这个问题不太适合我们的问答形式 我们希望答案得到事实 参考资料或专业知识的支持 但这个问题可能会引发辩论 争论 民意调查或扩展讨论 如果您觉得这个问题可以改进并可能重新开放 访问帮助中心 help reopen questi
  • 多次重复使用同一页面

    是否可以多次重用一页附加到不同的对象 我有一个页面 您可以输入个人信息 姓名 地址 社交号码 连接到一个 bean 潜在客户 在某些情况下 我必须收集链接的个人信息 信用评分示例 个人和担保人 所以我想与 2 个包含一起使用 但是我如何确保
  • 将复选框检查图像更改为自定义图像

    我正在尝试使用 CSS 更改复选框的默认 框图像 但它不起作用 有没有办法解决 class checkbox background url images button bullet normal png no repeat scroll 0
  • .html 和 .xhtml 扩展名有什么区别? XHTML 是一种标记语言,或者它也是一种不同的扩展

    两者有什么区别 html and xhtml文件扩展名 使用有什么好处 xhtml扩大 为什么我们不使用 xhtml扩展名 只是因为IE吗 IE 8 的 xhtml 扩展名怎么样 Is xhtml除了IE之外 其他浏览器也支持吗 如果是 那
  • 我可以使用 display:inline 和 text-align: 对吗?

    Example td img src img src div style text align left hello world div td 从技术上讲 你可以 但不会有任何效果 Display inline 会将 div 显示为内联元素
  • 什么是 css“设计模式”的良好在线资源? [关闭]

    就目前情况而言 这个问题不太适合我们的问答形式 我们希望答案得到事实 参考资料或专业知识的支持 但这个问题可能会引发辩论 争论 民意调查或扩展讨论 如果您觉得这个问题可以改进并可能重新开放 访问帮助中心 help reopen questi
  • XSD 到 XForms 以及 XForms 到 XSD 转换

    目前我正在努力解决两个问题 我从外部服务器接收到一个 XSD 文件 并且基于该文件我必须生成 XForm 通常 XSD 文件会导入许多其他 XSD 文件等等 我正在使用 XForm 构建器编写 GUI 当用户构建他的自定义 XForm 时
  • 最长和最短的 HTML 字符实体名称是什么? [关闭]

    这个问题不太可能对任何未来的访客有帮助 它只与一个较小的地理区域 一个特定的时间点或一个非常狭窄的情况相关 通常不适用于全世界的互联网受众 为了帮助使这个问题更广泛地适用 访问帮助中心 help reopen questions 管子周围有
  • 如何使用浮动而不翻转浮动项目并更改源顺序?这可能吗?

    看这个例子就明白了 http jsbin com ocewu http jsbin com ocewu 替代文本http easycaptures com fs uploaded 212 8042227539 png http easyca
  • 如何修复错误嵌套/未闭合的 HTML 标签?

    我需要通过使用正确的嵌套顺序关闭任何打开的标签来清理用户提交的 HTML 我一直在寻找一种算法或Python代码来做到这一点 但除了PHP等中的一些半生不熟的实现之外 还没有找到任何东西 例如 类似的东西 p p ul li Foo bec
  • 为什么自动关闭脚本元素不起作用?

    浏览器无法正确识别的原因是什么 只有这一点是公认的 这是否打破了 XHTML 支持的概念 注意 此声明至少对于所有 IE 6 8 beta 2 都是正确的 XHTML 1 规范的非规范性附录 HTML 兼容性指南 指出 3 元素最小化和空元

随机推荐

  • 《算法笔记》01

    1 比较交换3个实数值 并按序输出 从键盘输入3个实数a b c 通过比较交换 将最小值存储在变量a中 最大值存储在变量c中 中间值存储在变量b中 并按照从小到大的顺序输出这三个数a b c 末尾输出换行 include
  • kafka客户端连接测试

    客户端代码 package main import fmt github com Shopify sarama kafka 示例代码 func main 配置 config sarama NewConfig 等待服务器所有副本都保存成功后的
  • 【Qt多线程之线程的等待和唤醒】

    QWatiCondition的成员函数 QWaitCondition QWaitCondition bool wait QMutex mutex unsigned long time ULONG MAX void wakeOne void
  • 哪些你朝思暮想的动漫网站-搜嗖工具箱

    AcFun是国内首家弹幕视频网站 这里有全网独家动漫新番 友好的弹幕氛围 有趣的UP主 好玩有科技感的虚拟偶像 年轻人都在用www acfun cn 哔哩哔哩是国内知名的视频弹幕网站 这里有及时的动漫新番 活跃的ACG氛围 有创意的Up主
  • docker pull 设置代理

    简介 你在终端设置代理的时候docker pull的时候是不会走代理的 下面是docker pull设置代理的正确方式 操作 环境是在centos下 如果没有新建下面这个文件夹 sudo mkdir p etc systemd system
  • 毕业设计-基于大数据的新闻推荐系统-python

    目录 前言 课题背景和意义 实现技术思路 实现效果图样例 前言 大四是整个大学期间最忙碌的时光 一边要忙着备考或实习为毕业后面临的就业升学做准备 一边要为毕业设计耗费大量精力 近几年各个学校要求的毕设项目越来越难 有不少课题是研究生级别难度
  • 组件的生命周期

    一 组件的生命周期 1 组件的生命周期 至一个组件从 创建 gt 运行 gt 销毁的过程 2 声明周期函数 由Vue提供的内置函数 伴随组件生命周期按次序自动运行 gt 钩子函数 3 生命周期的阶段划分 1 创建阶段 beforeCreat
  • Flutter从入门到放弃之坑的神奇之处?

    坑一 关于环境变量的配置 这里要注意几点 不然你将会在这里卡死 这里只说Mac OS环境变量的配置 因为我是Mac 首先 command shift 打开隐藏文件 如果你是用的是自带的终端 请在这个文件中配置 如果你使用的是zsh请在 这个
  • Pytorch nn.Module的基本使用

    文章目录 nn Module的基本用法 nn Module的其他常用方法 参考资料 nn Module的基本用法 nn Module是所有神经网络的基类 所以你的神经网络类也应该要继承这个基类 当使用时 主要需要实现其两个方法 init 初
  • SPSS问卷数据处理步骤

    SPSS问卷数据处理步骤 一 准备 界面与数据准备工作 1 先处理显示界面问题 改成中文输出 优化操作过程 编辑 选项 2 数据字典 定义变量属性 几个代表性的 复制数据属性 数据 定义变量属性 设好以后 数据 复制数据属性 把几个代表性的
  • SQL 左连接 右表多条数据处理方式

    前言 多表连接经常使用 而一对多的数据处理比较麻烦 用于记录 便于以后使用 正文 SQL server语句 select a t from table1 a left join select from select b ROW NUMBER
  • STL模板库 常用函数 vector向量容器

    STL模板库 STL是Standard Template Library缩写 中文名字叫标准模板库 由惠普实验室提供 共有三类内容 算法 以函数模板形式实现的常用算法 如 max min swap find sort 容器 以类模板形式实现
  • 做一个 加减运算 利用JavaScript

    首先做个运算需要用到三个文本框 显示数字 这里我用input做了3个框 并且赋值他们的属性值 id 并且做了一个button按钮来调动 接着调用button这个函数 接着我们需要获取第一个和第第二个input的值 为什么用 parseInt
  • 【Linux专题_05】Linux统计行数命令

    Linux统计行数几种常用命令 wc l 这是最常用的命令 用于统计文件中的行数 它会输出文件的行数以及文件名 示例 wc l filename txt nl 该命令会给文件中的每一行添加行号 并将结果输出到标准输出 通过查看行号的最后一个
  • LeetCode 220. 存在重复元素 III

    题目链接 点击这里 class Solution public boolean containsNearbyAlmostDuplicate int nums int k int t TreeSet
  • Android Studio解除全局搜索100条限制

    1 点击Help gt Find Action选项 2 输入Registry 并选中进入 3 将ide usages page size的value设置为自己想要的数值即可
  • 修改块的方法+AcGeMatrix3d+AcGeScale3d+两点之间的距离

    开发过程中 当从外部获取了一个 需要修改块中的实体时 有以下几种方法 1 第一个通过explode函数炸开AcDbBlockReference 获取块参照中的实体对象 然后遍历对象 找到修改的实体 完成修改后将所有的实体插入到模型空间 注意
  • 第四章CSS基础

    文章目录 学习CSS的目的 引入的三种方式 内部样式表 行内样式表 外部样式表 选择器的分类 基础选择器 标签选择器 类选择器 id选择器 通配符选择器 复合选择器 后代选择器 子选择器 并集选择器 伪类选择器 盒子模型 不同浏览器下盒子模
  • 深度学习 从零开始 —— 神经网络(四),二分类问题,IMDB数据集使用

    IMDB数据集 互联网电影数据 包含50000条严重两极分化的评论 正面和负面评论各占50 而该数据集也同样被内置于Keras库中了 其中的评论数据已经经过了预处理 评论 单词 被转化为了整数序列 每个整数都对应词典里面的一个单词 加载数据
  • HTML页面基本结构

    本文简要介绍HTML中的各种元素及其相关属性 读者需要有一个概念 HTML页面都是由基本元素及属性组成的 HTML页面的结构如下 doctype 声明 HTML 源文件中 首先出现的是 doctype 声明 该声明告诉浏览器 本页面使用何种