前言

本教程针对已经基本熟悉HTML4基本标签的人。

HTML的发展历程

  • HTML 1.0: 1993年6月由IETF(Internet Engineering Task Force, 互联网工程工作小组)作为草案发布。
  • HTML 2.0: 1995年11月作为RFC 1866发布,但目前已过时。
  • HTML 3.2: 1996年1月14日由W3C(World Wide Web Consortium, 万维网联盟)作为推荐标准发布。
  • HTML 4.0: 1997年12月18日由W3C作为推荐标准发布。
  • HTML 4.01: 1999年12月24日由W3C作为推荐标准发布,此版本是目前我们最常见的版本。
  • XHTML 1.0: 2000年1月26日由W3C作为推荐标准发布。
  • XHTML 1.1: 2001年5月31日由W3C作为推荐标准发布。
  • HTML5: 2004年由WHATWG(Web HyperText Application Technology Working Group, 超文本应用技术工作组)发布HTML5草案,预计2022年正式推广HTML5。

HTML、XHTML、DHTML的区别

首先区分HTML与XHTML,XHTML有着更严格的规范,并遵循一些XML的规范,这里列出一些:

  1. 标签要用小写,如用<br/>而不用<BR/>
  2. 标签必须正确嵌套。
  3. 标签要关闭,如用<br/>而不用<br>
  4. 标签的属性值需要加引号,如用<div height="80"></div>而不用<div height=80></div>
  5. 给所有属性赋值,如用<input type="checkbox" checked="checked">而不用<input type="checkbox" checked>

DHTML是Dynamic HTML(动态HTML)的缩写,他并不是单纯的HTML,而是一些技术的综合应用,DHTML=HTML+CSS+JAVASCRIPT+DOM。

常见的DOCTYPE

<!DOCTYPE html>     //HTML5的DOCTYPE,看一个网页是不是HTML5网页的最简单的方法就是看这个部分

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

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

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

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

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

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

<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.1//EN" "http://www.w3.org/TR/xhtml11/DTD/xhtml11.dtd">                                       //XHTML 1.1

<meta>标签

  • 这个标签很容易被学习HTML的人所忽略。
  • <meta>标签位于<head>标签内,用于为页面提供meta data(元信息)。

主要有五个功能:

  1. 提供页面的描述、作者、关键字等信息,为了让搜索引擎抓取网页时更好地定位网页信息(在SEO中很重要)。
    1. <meta name="author" content="xiazdong"/>                        //网页作者
    2. <meta name="keywords" content="cnblogs,blog,xiazdong"/> //网页的关键字
    3. <meta name="description" content="this is a blog"/>        //网页描述信息
    4. <meta name="revised" content="xiazdong,2014-01-20"/>     //修订页面的信息,如作者、时间
    5. <meta name="generator" content="dreamweaver cs5"/>       //编写网页的工具
  2. 设置页面的字符集:<meta http-equiv="content-type" content="text/html;charset=UTF-8"/>(适用于HTML4)、<meta charset="UTF-8"/>(适用于HTML5)
  3. 刷新页面:<meta http-equiv="refresh" content="3;url=http://www.ecnu.edu.cn"/> (功能:3秒后跳转到www.ecnu.edu.cn)
  4. 充当robots.txt的作用:<meta name="robots" content="all|none|nofollow|noindex"/>. 互联网的所有网页组成了一个有向图,搜索引擎的很大一部分是由爬虫爬取网页,并且根据该网页中的链接通过DFS或BFS等搜索方式继续爬取页面,而此设置的作用在于规定爬虫的行为,比如:all 表示爬虫能够对当前页面建立索引,也可以继续爬取该网页链接到的页面;none 表示noindex+nofollow,即既不允许爬虫对该页面建立索引,也不允许继续爬取该页面链接到的其他页面(即爬虫认为该页面的出度为0);其他类似。
  5. 设置页面无缓存:<meta http-equiv="pragma" content="no-cache"/>. 禁止浏览器使用页面缓存显示页面内容。

语义标签与无语义标签

  • 语义标签:带有一定含义的标签,如: <h1>~<h6>表示一级标题~六级标题、<p>表示段落、<img>表示图片、<a>表示超链接、<ul>表示无序链表、<table>表示表格。
  • 无语义标签:没有含义的标签,如:<div>、<span>。
  • 我们能够用<div>去实现<h1>,但是这并不推荐。
  • 在HTML5也新增加了一些语义化标签,如<footer>、<header>等。

Web app 与 Native app

  • Web app: 手机用户通过浏览器使用的应用,说白了他就是一个网站。
  • Native app: 在App Store下载的应用。

Web开发必备工具

既然要学习HTML,目的肯定是Web开发,因此肯定还需要学习CSS、Javascript等技术,下面是工具的一些推荐:

  • 开发环境: Sublime Text(轻量级的开发环境)、Dreamweaver CS6、Zend Studio(Eclipse演变的集成开发环境)。
  • 浏览器: 推荐较新版本的chrome或firefox。

常用工具

  1. IETester: 软件里面嵌入了IE5、IE6、IE7等旧版本的IE,能够测试制作出的网页对这些旧版本IE的兼容性。
  2. AxureRP-Pro: 网页设计工具,直接拖动来布局网页。
  3. DebugBar: IE 中的 firebug。
  4. Mockups: 网页设计工具。

一、HTML4背景知识的更多相关文章

  1. HTML5元素背景知识

    目录 HTML5元素背景知识 语义与呈现分离 元素选用原则 少亦可为多 别误用元素 具体为佳,一以贯之 对用户不要想当然 元素说明体例 ol元素 元素速览 文档和元数据元素 文档和元数据元素 文本元素 ...

  2. .NET同步与异步之相关背景知识(六)

    在之前的五篇随笔中,已经介绍了.NET 类库中实现并行的常见方式及其基本用法,当然.这些基本用法远远不能覆盖所有,也只能作为一个引子出现在这里.以下是前五篇随笔的目录: .NET 同步与异步之封装成T ...

  3. Mozilla研究—深入理解mozilla所需的背景知识

    mozilla是一个以浏览器为中心的软件平台,它在我们平台中占有重要地位.我们用它来实现WEB浏览器.WAP浏览器.邮件系统.电子书和帮助阅读器等应用程序.为此,我最近花了不少时间去阅读mozilla ...

  4. 第01讲- Android背景知识

    第01讲Android背景知识 Android是基于Linux系统 Android系统框图 : 第一.操作系统层(OS) 第二.各种库(Libraries)和Android 运行环境(RunTime) ...

  5. word2vec 中的数学原理具体解释(三)背景知识

      word2vec 是 Google 于 2013 年开源推出的一个用于获取 word vector 的工具包,它简单.高效,因此引起了非常多人的关注.因为 word2vec 的作者 Tomas M ...

  6. Tomcat(一):背景知识和安装tomcat

    Tomcat系列文章:http://www.cnblogs.com/f-ck-need-u/p/7576137.html 1. 基础背景知识 1.1 java和jdk概念 无论是何种程序,要能在计算机 ...

  7. jenkins X实践系列(1) —— 背景知识

    本文介绍jenkins X(以下简称jx)相关的背景技术. jenkins X 简介 Jenkins X 是一个高度集成化的CI/CD平台,基于Jenkins和Kubernetes实现,旨在解决微服务 ...

  8. {Python之进程} 背景知识 什么是进程 进程调度 并发与并行 同步\异步\阻塞\非阻塞 进程的创建与结束 multiprocess模块 进程池和mutiprocess.Poll

    Python之进程 进程 本节目录 一 背景知识 二 什么是进程 三 进程调度 四 并发与并行 五 同步\异步\阻塞\非阻塞 六 进程的创建与结束 七 multiprocess模块 八 进程池和mut ...

  9. {Python之线程} 一 背景知识 二 线程与进程的关系 三 线程的特点 四 线程的实际应用场景 五 内存中的线程 六 用户级线程和内核级线程(了解) 七 python与线程 八 Threading模块 九 锁 十 信号量 十一 事件Event 十二 条件Condition(了解) 十三 定时器

    Python之线程 线程 本节目录 一 背景知识 二 线程与进程的关系 三 线程的特点 四 线程的实际应用场景 五 内存中的线程 六 用户级线程和内核级线程(了解) 七 python与线程 八 Thr ...

随机推荐

  1. 10个jQuery插件分享

    原文:http://www.shejidaren.com/10-jquery-plugins.html blur.js blur.js是一个很有意思的插件,它能实现像WIN7 AERO效果的JS插件, ...

  2. 如何用 Parse 和 Swift 搭建一个像 Instagram 那样的应用?(2)

    [编者按]本篇文章作者是 Reinder de Vries,既是一名企业家,也是优秀的程序员,发表多篇应用程序的博客.本篇文章中,作者主要介绍了如何基于 Parse 特点,打造一款类似 Instagr ...

  3. GCD初步认识

    //(1)用异步函数往并发队列中添加任务, //总结:同时开启三个子线程 - (void)test1 { //1.获得全局的并发队列 dispatch_queue_t queue = dispatch ...

  4. Javascript offsetLeft详情

    <!DOCTYPE html> <html xmlns="http://www.w3.org/1999/xhtml"> <head> <m ...

  5. HDU 1142 A Walk Through the Forest(SPFA+记忆化搜索DFS)

    题目链接 题意 :办公室编号为1,家编号为2,问从办公室到家有多少条路径,当然路径要短,从A走到B的条件是,A到家比B到家要远,所以可以从A走向B . 思路 : 先以终点为起点求最短路,然后记忆化搜索 ...

  6. CS程序,服务器端弹出MessageBox.Show()之类的UI操作???禁止

    服务器端绝对不能用MessageBox.Show之类的UI操作,大家要掌握异常(Exception)的工作机制. 可能你开发调试时貌似可以,因为是以单机版运行.在服务层或者数据访问层MessageBo ...

  7. ListView中EditText的数据加载错乱的问题

    我在ListView中用BaseAdapter的getView()方法加载适配器,每个Item里有一个TextView和一个EditText,当我在第一个EditText里面输入数据,比如1234时, ...

  8. Linux客户/服务器程序设计范式2——并发服务器(进程池)

    引言 让服务器在启动阶段调用fork创建一个子进程池,通过子进程来处理客户端请求.子进程与父进程之间使用socketpair进行通信(为了方便使用sendmsg与recvmsg,如果使用匿名管道,则无 ...

  9. JAVA面试基础

    JAVA相关基础知识1.面向对象的特征有哪些方面 ?1.抽象:抽象就是忽略一个主题中与当前目标无关的那些方面,以便更充分地注意与当前目标有关的方面.抽象并不打算了解全部问题,而只是选择其中的一部分,暂 ...

  10. Android核心分析之二十一Android应用框架之AndroidApplication

    Android Application Android提供给开发程序员的概念空间中Application只是一个松散的表征概念,没有多少实质上的表征.在Android实际空间中看不到实际意义上的应用程 ...