整合营销服务商

电脑端+手机端+微信端=数据同步管理

免费咨询热线:

HTML教程(看完这篇就够了)

TML教程

超文本标记语言(英语:HyperText Markup Language,简称:HTML)是一种用于创建网页的标准标记语言。

您可以使用 HTML 来建立自己的 WEB 站点,HTML 运行在浏览器上,由浏览器来解析。

在本教程中,您将学习如何使用 HTML 来创建站点。

HTML 很容易学习!相信您能很快学会它!

本教程包含了数百个 HTML 实例。

使用本站的编辑器,您可以轻松实现在线修改 HTML,并查看实例运行结果。

<!DOCTYPE html>
<html>
    <head>
        <meta charset="utf-8">
        <title>孙叫兽的博客</title>
    </head>
    <body>
        <h1>我的第一个标题</h1>
        <p>我的第一个段落。</p>
    </body>
</html>

HTML 文档的后缀名

.html

.htm

都可以。

  • HTML 简介

实例:

<!doctype html>
<html>
<header>
<meta charset="utf-8">
<title>孙叫兽的博客</title>
</header>
<body>
<h1>这是我的标题</h1>
<p>这是我的段落</p>
</body>
</html>

实例解析

  • <!DOCTYPE html> 声明为 HTML5 文档
  • <html> 元素是 HTML 页面的根元素
  • <head> 元素包含了文档的元(meta)数据,如 <meta charset=“utf-8”> 定义网页编码格式为 utf-8。
  • <title> 元素描述了文档的标题
  • <body> 元素包含了可见的页面内容
  • <h1> 元素定义一个大标题
  • <p> 元素定义一个段落

什么是HTML?

  • HTML 是用来描述网页的一种语言。
  • HTML 指的是超文本标记语言: HyperText Markup Language
  • HTML 不是一种编程语言,而是一种标记语言
  • 标记语言是一套标记标签 (markup tag)
  • HTML 使用标记标签来描述网页
  • HTML 文档包含了HTML 标签及文本内容
  • HTML文档也叫做 web 页面
  • HTML 标签
  • HTML 标记标签通常被称为 HTML

标签

  • HTML 标签是由尖括号包围的关键词,比如 <html>
  • HTML 标签通常是成对出现的,比如 <b> 和 </b>
  • 标签对中的第一个标签是开始标签,第二个标签是结束标签
  • 开始和结束标签也被称为开放标签和闭合标签
  • <标签>内容</标签>

    html元素

    “HTML 标签” 和 “HTML 元素” 通常都是描述同样的意思.

    但是严格来讲, 一个 HTML 元素包含了开始标签与结束标签,如下实例:

    HTML 元素:

    <p>这是一个段落</p>

    web浏览器

    Web浏览器(如谷歌浏览器,Internet Explorer,Firefox,Safari)是用于读取HTML文件,并将其作为网页显示。

    浏览器并不是直接显示的HTML标签,但可以使用标签来决定如何展现HTML页面的内容给用户

    html网页结构

    <html>
        <head>
            <title>页面标题</title>
        </head>
        <body>
            <h1>这是一个标题</h1>
            <p>这是一个段落。</p>
            <p>这是另外一个段落。</p>
        </body>
    </html>

    html的版本:

    <!DOCTYPE>声明

    <!DOCTYPE>声明有助于浏览器中正确显示网页。

    网络上有很多不同的文件,如果能够正确声明HTML的版本,浏览器就能正确显示网页内容。

    doctype 声明是不区分大小写的,以下方式均可:

    <!DOCTYPE html>
    <!DOCTYPE HTML>
    <!doctype html>
    <!Doctype Html>

    html5

    <!DOCTYPE html>

    html4

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

    xhtml1.0

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

    中文编码

    目前在大部分浏览器中,直接输出中文会出现中文乱码的情况,这时候我们就需要在头部将字符声明为 UTF-8。

    SVG(Scalable Vector Graphics)是一种基于XML的2D矢量图形格式,可以实现图像的无损缩放和高清晰度显示。在HTML中嵌入SVG图像,可以使网页更加生动有趣,提高用户体验
    
    <svg width="54" height="54" class="c-nav--footer__svgicon c-slackhash" viewBox="0 0 54 54" xmlns="http://www.w3.org/2000/svg">
    <g fill="none" fill-rule="evenodd">
    <path d="M19.712.133a5.381 5.381 0 0 0-5.376 5.387 5.381 5.381 0 0 0 5.376 5.386h5.376V5.52A5.381 5.381 0 0 0 19.712.133m0 14.365H5.376A5.381 5.381 0 0 0 0 19.884a5.381 5.381 0 0 0 5.376 5.387h14.336a5.381 5.381 0 0 0 5.376-5.387 5.381 5.381 0 0 0-5.376-5.386" fill="#44BEDF">
    </path>
    <path d="M53.76 19.884a5.381 5.381 0 0 0-5.376-5.386 5.381 5.381 0 0 0-5.376 5.386v5.387h5.376a5.381 5.381 0 0 0 5.376-5.387m-14.336 0V5.52A5.381 5.381 0 0 0 34.048.133a5.381 5.381 0 0 0-5.376 5.387v14.364a5.381 5.381 0 0 0 5.376 5.387 5.381 5.381 0 0 0 5.376-5.387" fill="#2EB67D">
    </path>
    <path d="M34.048 54a5.381 5.381 0 0 0 5.376-5.387 5.381 5.381 0 0 0-5.376-5.386h-5.376v5.386A5.381 5.381 0 0 0 34.048 54m0-14.365h14.336a5.381 5.381 0 0 0 5.376-5.386 5.381 5.381 0 0 0-5.376-5.387H34.048a5.381 5.381 0 0 0-5.376 5.387 5.381 5.381 0 0 0 5.376 5.386" fill="#ECB22E">
    </path>
    <path d="M0 34.249a5.381 5.381 0 0 0 5.376 5.386 5.381 5.381 0 0 0 5.376-5.386v-5.387H5.376A5.381 5.381 0 0 0 0 34.25m14.336-.001v14.364A5.381 5.381 0 0 0 19.712 54a5.381 5.381 0 0 0 5.376-5.387V34.25a5.381 5.381 0 0 0-5.376-5.387 5.381 5.381 0 0 0-5.376 5.387" fill="#E01E5A">
    </path>
    </g>
    </svg>
    

    了执行Javascript,需要在HTML文件内以特定的方式书写JavaScript的代码,JavaScript的书写方法有多种,其执行的流程也各不相同:

    1 <script>标签嵌入

    此种嵌入方法无法操作<script>之后的DOM元素。因为<script>之后的DOM元素还未构造,因此在<script>标签内就无法取得位于其后的DOM元素。

    2 读取外部JavaScript文件

    此种嵌入方法可以指定defer、async属性。defer可以推迟执行,async可以异步执行。

    3 onload嵌入

    此种嵌入方法在页面读取完后再对其执行,所以可以对所有的DOM元素操作。

    <body onload="alert('hello')">
    window.onload = function(){alert('hello');};

    当window.onload事件触发时,页面上所有的DOM、样式表、脚本、图片、flash都已经加载完成了。

    //window.onload不能同时编写多个。
    //以下代码无法正确执行,结果只输出第二个。
    window.onload = function(){
      alert("test1");
    };
    
    window.onload = function(){
      alert("test2");
    };
    
    //$(document).ready()能同时编写多个
    //结果两次都输出
    $(document).ready(function(){ 
       alert("Hello World"); 
    }); 
    $(document).ready(function(){ 
       alert("Hello again"); 
    }); 

    window.onload和body中onload也有些许区别:

    <html xmlns="http://www.w3.org/1999/xhtml">
    <head>
        <meta http-equiv="Content-Type" content="text/html; charset=utf-8" />
        <title></title>
        <script type="text/javascript" src="http://code.jquery.com/jquery-1.9.0.js"></script>
        <script language="javascript">
            window.onload = haha;
            function haha(){console.log("window.onload");}
    
            if(document.addEventListener){
                function DOMContentLoaded(){
                    console.log("DOMContentLoaded");
                }
                document.addEventListener( "DOMContentLoaded", DOMContentLoaded, false );
            }</script>
    </head>
    <body onload="console.log('bodyonload');">
            <div id="div1">a</div>
    </body>
    </html>

    在IE10和FireFox下,结果为 :

    "DOMContentLoaded"
    "bodyonload"

    说明body中的onload会覆盖window.onload

    在chrome下,结果为:

    DOMContentLoaded
    window.onload
    bodyonload

    然后,如果把javascript代码移到最下面,结果又会是什么样呢?

    chrome和IE10、FireFox的结果竟然是一样的:

    DOMContentLoaded
    window.onload

    IE 10、Fire Fox可以理解,window.on load和body中的 on load 谁在下面就是谁覆盖谁,只会执行后面的那个。

    4 DOM ContentLoaded嵌入

    onload方法可能需要等待时间,而本方法可以在完成HTML解析后发生的事件,减少等待时间。

    在chrome、IE10和FireFox中,执行结果是:DOMContentLoaded然后才是onload的输出。所以说一般情况下,DOMContentLoaded事件要在window.onload之前执行,当DOM树构建完成的时候就会执行DOMContentLoaded事件。

    <html xmlns="http://www.w3.org/1999/xhtml">
    <head>
        <meta http-equiv="Content-Type" content="text/html; charset=utf-8" />
        <title></title>
        <script type="text/javascript" src="jquery2.js"></script>
        <script language="javascript">
            window.onload = haha;
            function haha(){console.log(document.getElementById("div1"));}
            if(document.addEventListener){
                function DOMContentLoaded(){
                    console.log("DOMContentLoaded");
                }
                document.addEventListener( "DOMContentLoaded", DOMContentLoaded, false );
            }
        </script>
    </head>
    <body>
        <div id="div1">a</div>
    </body>
    </html>

    如果你是个jQuery使用者,你可能会经常使用$(document).ready();或者$(function(){}),这都是使用了DOMContentLoaded事件

    5 动态载入JavaScript文件

    5.1 使用原生js方法

    动态创建script标签,并指定script的src属性

    function loadJs(url, callback) {
        var script = document.createElement('script');
        script.type = "text/javascript";
        if (typeof(callback) != "undefined") {
            if (script.readyState) {
                script.onreadystatechange = function() {
                    if (script.readyState == "loaded" || script.readyState == "complete") {
                        script.onreadystatechange = null;
                        callback();
                    }
                }
            } else {
                script.onload = function() {
                    callback();
                }
            }
        }
        script.src = url;
        document.body.appendChild(script);
    }
    loadJs("test.js", function() {
        alert('done');
    });

    还可以使用同样的原理动态加载css文件,只不过插入的的父节点是head标签。

    5.2 使用document.write/writeln()方式

    该种方式可以实现js文件的动态加载,原理就是在重写文档流,这种方式会导致整个页面重绘。

    document.writeln("<script src=\"http://lib.sinaapp.com/js/jquery/1.6/jquery.min.js\"></script>");

    需要注意的是特殊字符的转义。

    5.3 使用jQuery

    使用getScript(url,callback)方法实现动态加载js文件

    $.getScript('test.js',function(){
        alert('done');
    });

    -End-