江离书生

vuePress-theme-reco 史博辉    2024
江离书生 江离书生

Choose mode

  • dark
  • auto
  • light
主页
分类
  • html
  • java
  • 日常生活
  • markdown
  • mysql
  • nvm
  • pnpm
  • 常见问题
  • vue3
标签
时间轴
author-avatar

史博辉

51

文章

9

标签

主页
分类
  • html
  • java
  • 日常生活
  • markdown
  • mysql
  • nvm
  • pnpm
  • 常见问题
  • vue3
标签
时间轴
  • HTML

    • HTML5 简介

    • HTML5 的常用元素与属性

      • HTML5 的常用元素与属性
      • HTML5 保留的常用元素
      • 基本元素
      • 文本格式相关元素
      • 语义相关元素
      • 使用 a 元素添加超链接和锚点
      • 列表相关元素
    • HTML5 表单相关的元素和属性

    • HTML5 的绘图支持

    • HTML5 的多媒体支持

    • 级联样式单与 CSS 选择器

    • 字体与文本相关属性

    • 背景、边框和边距相关属性

    • 大小、定位、轮廓相关属性

    • 盒模型与布局相关属性

    • 表格、列表相关属性及 media query

    • 变形与动画相关属性

    • JavaScript 语法详解

    • DOM 编程详解

    • 事件处理机制

    • 本地存储与离线应用

    • 文件支持与二进制数据

    • Web Worker 多线程 API

    • 客户端通信

    • HTML5 疯狂俄罗斯方块

基本元素

vuePress-theme-reco 史博辉    2024

基本元素

史博辉 2023-06-30 14:26:00 html

正如第1章所介绍的,HTML 文档是一份结构化的文档,HTML 文档的根元素总是<html.../>元素,该元素内通常包含<head.../>和<body.../>两个子元素(HTML5 允许省略它们,HTML5 会隐式添加),这三个元素定义了 HTML 文档的基本结构。

HTML5保留的基本元素有如下几个。

  • <!--...-->:定义 HTML 注释。位于<!--与-->之间的内容会被当成注释处理。
  • <html>:它是 HTML5 文档的根元素。但 HTML5 允许完全省略这个元素。
  • <head>:它用于定义 HTML5 文档的页面头部分。但 HTML5 允许完全省略这个元素。
  • <title>:它用于定义 HTML5 文档的页面标题。
  • <body>:它用于定义 HTML5 文档的页面主体部分,该元素可以指定 id、class、style 等通用属性,还可以指定 onload、onunload、onclick、ondblclick、onmousedown、onmouseup、onmouseover、onmousemove、onmouseout、onkeypress、onkeydown、onkeyup 等事件属性,这些属性用于指定 JavaScript 脚本。

关于HTML5元素的事件属性,请参阅本书后面相关内容,此处不会详细介绍这些事件属性的用法。后面介绍各元素时也不再详细列出各事件属性。

  • <h1>到<h6>:定义标题一到标题六。
  • <p>:定义段落,该元素可以指定 id、class、style、dir、title 等通用属性,还可以指定 onclick 等各种事件属性。

几乎所有的 HTML 元素都可指定 id、style、class、dir、title 等通用属性。其中 id 属性用于为 HTML 元素指定一个唯一标识,该标识是通过 DOM 访问 HTML 元素的重要途径。class 和 style 属性是 CSS 样式相关属性,关于 CSS 样式的作用和用法请参考本书关于 CSS 章节的介绍。

  • <br>:插入一个换行,该元素可以指定 id、class、style 等通用属性。
  • <hr>:定义水平线,该元素可以指定 id、class、style 等通用属性,还可以指定 onclick 等各种事件属性。HTML5 中<hr/>还代表了主题结束的语义。
  • <div>:定义文档中的节。该元素可以指定 id、class、style、dir、title 等通用属性,还可以指定 onclick 等各种事件属性。
  • <span>:与<div>基本相似,区别是<span>只是表示一段一般性文本,该元素包含的文本内容默认不会换行。该元素可以指定和<div>相同的属性。

下面一份基本的HTML5文档中包含了这些元素,页面代码如下。

<!DOCTYPE html>
<html>
<head>
    <meta http-equiv="content-Type" content="text/html; charset=utf-8"/>
    <title>基本元素</title>
</head>
<body>
    <!-- 采用标题一到标题六来输出文本 -->
    <h1>疯狂 Java 讲义</h1>
    <h2>疯狂 Android 讲义</h2>
    <h3>轻量级 Java EE 企业应用实战</h3>
    <h4>疯狂 XML 讲义</h4>
    <h5>疯狂前端开发讲义</h5>
    <h6>经典 Java EE 企业应用实战</h6>
    <!-- 输出一条水平线 -->
    <hr />
    <!-- 使用三个 span 定义段文本 -->
    <span>Tomcat</span><span>Jetty</span><span>Resin</span>
    <!-- 输出换行 -->
    <br />
    <!-- 使用三个 div 定义三节 -->
    <div>Tomcat</div><div>Jetty</div><div>Resin</div>
    <!-- 使用三个p定义三个段落 -->
    <p>Tomcat<p>Jetty<p>Resin
</body>
</html>

在浏览器种浏览上面页面,会看到如图2.1所示的效果。

基本HTML元素的效果

本书写作过程中主要使用了 Firefox 49、Opera 41、Chrome 54、Internet Explorer 11 来浏览页面,这些浏览器都对 HTML5 提供了良好的支持。以后如果不做特殊说明,本书所指的浏览器通常就是这四个浏览器的其中之一。

从上图可以看出,<span.../>、<div../>和<p.../>三个元素的效果有点类似,它们都可作为其他内容的“容器”——容纳文本和其他内容。在默认情况下,<span.../>元素不会导致换行,而<div.../>元素会导致换行,而<p.../>元素会产生一个段落,所以段落和段落之间默认有更大的间距。

除此之外,还有一点需要指出:<span.../>元素和<p.../>元素只能包含文本、图像、超链接、文本格式化元素和表单控件元素等内容,<p.../>可以包含<span.../>元素,但<span.../>不能包含<p.../>;<div.../>元素除了可以包含上面这些内容之外(包括<p.../>和<span../>),还可以包含<h1.../>到<h6.../>、<form.../>、<table.../>、列表项元素和<div.../>元素——由此可见,<div.../>元素可以包含更多内容。

正因为<div.../>元素可以包含各种各样的内容,因此在 HTML5 以前,经常会大量使用<div../>元素来完成页面布局。

正是由于<div.../>元素的滥用,导致HTML网页中语义的清晰性下降,为了避免这种情况,HTML5 规范推荐 HTML5 的文档结构元素如<article.../>、<section.../>、<nav../>等代替<div../>。