HTML基础

HTML的全程是Hyper Text Markup Language,中文名叫超文本标记语言,是一种用于创建网页的标准标记语言。HTML不是一种编程语言,而是一种标记语言,用来描述网页。

一、最基本的HTML文档

<!DOCTYPE html>
<html>
<head>
    <meta charset="utf-8" />
    <title>First Page</title>
</head>
<body>
    <h1>这是标题</h1>
    <p>这是段落</p>
</body>
</html>

其中

  • <!DOCTYPE html>:声明该文档是HTML5文档,加上这个声明有助于浏览器正确的显示网页内容。
  • <html>:HTML文档的根元素。
  • <head>:包含HTML文档的头信息,包括文档标题和文档的元数据。
  • <title>:文档标题。
  • <meta>:文档元数据,其中的charset="utf-8"属性表示文档采用utf-8编码,如果没有这个声明,可能会出现中文乱码。
  • <body>:可见的页面内容。
  • <h1>:标题。
  • <p>:段落。

HTML内容

HTML在显示时浏览器会移除多余的的空格和空行,所有的空行和空格都会显示成一个空格。

HTML标签

  • HTML标签不区分大小写,但是推荐使用小写,未来版本中会强制使用小写。
  • HTML标签最好全都开始标签和结束标签成对出现,没有内容的标签可以在开始标签最后添加"/"关闭标签,表示空标签。
  • 在开始标签中设置属性可以给元素增加附件信息。

HTML属性

  • 属性使用键值对表示。
  • 其中属性值始终包含在引号内,一般使用双引号,也可以使用单引号。
  • 属性也使用小写。

二、基本标签

标题

使用<h1> - <h6>来表示,字体越来越小。

<h1>这是标题</h1>

段落

使用<p>表示。

<p>这是段落</p>

链接

使用<a>表示。

<a href="https://www.baidu.com">这是指向百度的链接</a>

在元素中添加标签ID,可以在href中添加#id来跳转到页面特定部分,还可以把文字换成图片标签来显示图片链接。

图像

使用<img>表示。

<img src="./imges/logo.png" width="255" height="255" />

注释

<!-- 这是注释 -->

分割线

<hr>

段落内换行

<br>

格式化文本

可以使用<b><i>设置粗体、斜体等,还有很多别的格式化文本的标签。

三、常用属性

几乎所有HTML标签都有的属性:

  • class: 定义元素的一个或多个类名。
  • id:定义元素的唯一ID。
  • style:定义元素的行内样式。
  • title:定义元素的额外信息(作为工具条使用)。

四、HTML头部

头部标签用<head>括起来,可以包含到这个标签里的标签有:<title><style><meta><link><script><noscript><base>。

  • <title>
    定义标题。
  • <base>
    定义本 文档中所有的链接标签的默认链接地址。
  • <link>
    定义本文档和外部资源的关系,通常用于链接到样式表。
  • <style>
    定义了文档的样式文件引用地址,也可以直接添加样式信息。
  • <meta>
    定义了网页元数据,可以包含网页的描述、关键词、文件的最后修改时间、作者。
  • <script>
    用于加载脚本。

五、HTML样式

可以通过3种方式把样式表添加到HTML文档中:

  • 内联样式:在标签中使用style属性。
  • 内部样式表:在<head>中的<style>中包含样式信息。
  • 外部引用:使用外部CSS文件。
    最好的方式是通过外部引用CSS文件

六、布局显示

大多数HTML的标签都可以定义为块级元素和内联元素,块级元素以新行来显示,内联元素不会以新行开始。

表格

表格由<table>定义,每个表格有若干行,由<tr>定义,每行被分割为若干个单元格,由<td>定义,意思是表格数据,单元格里可以嵌套其他的标签。另外还可以定义表头,用<th>表示。
需要注意表格现在一般不用于布局。

列表

列表支持有序列表、无序列表和自定义列表。

  • 有序列表:使用<ol>定义,列表项用<li>定义。
  • 无序列表:使用<ul>定义,列表项用<li>定义。
  • 自定义列表:使用<dl>定义,一个列表使用<dt>定义,列表项用<dd>定义。
    列表项内部可以嵌套各种标签。

区块

区块用<div>定义,一般用于其他标签的容器作文档布局和对大的内容块设置样式属性。另外还有一个<span>标签,用于部分文本设置样式属性。

七、表单

表单用于收集不同类型的用户输入,用<form>来定义,。一般里面都是嵌套输入标签<input>,通过不同的类型属性定义不同输入类型。输入类型常用以下几种:

  • 文本域:type="text",用来输入文本。
  • 密码:type="password",用来输入密码。
  • 单选按钮:type="radio",用来定义单选选项。
  • 复选框:type="checkbox",用来定义复选选项。
  • 提交按钮:type="submit",用来定义提交按钮。
    另外还可以定义下拉列表、按钮等。
    表单标签中还可以定义其他很多和用户输入相关的标签。

八、框架

使用框架,可以在一个浏览器窗口中显示不止一个页面,例如左边是目录,右边是内容的页面。
框架是通过<iframe>来定义的。

<iframe src=""></iframe>

可以通过属性定义框架的尺寸、是否显示边框等。

九、颜色

颜色值使用一个十六进制符号定义:#0000ff。另外还有一部分的常用颜色可以使用颜色名来定义:blue。

十、脚本

脚本使用<script>定义,该标签可以嵌在<head>中或<body>中,脚本代码就包含在这个标签中。通过脚本可以和用户进行交互,对内容进行动态更新等。

十一、字符实体

如果在文档内容中包含HTML的保留字符,必须替换为字符实体才能显示。可以用字符实体显示的还有特殊字符和空格,使用字符实体可以显示连续的多个空格。

十二、URL

在网络上使用统一资源定位符URL来定位万维网上的文档,URL的格式如下

scheme://host.domain:port/path/filename
  • scheme:定义因特网服务的类型,最常见的类型是http。
  • host:定义域主机(http的默认主机是www)。
  • domain:定义域名。
  • :port:定义端口号。
  • path:定义服务器上的路径,相对于网站根目录。
  • filename:定义文档或资源名称。
    URL中只能使用ASCII字符集,如果有非ASCII字符需要转为URL编码表示。URL编码使用“%”后跟两位十六进制数来表示。URL中不能包含空格,一般使用+来替换空格。

十三、HTML5

HTML5的设计目的是在移动设备上支持多媒体。HTML5中增加了很多新特性:

  • 增加了一些新元素和新属性,例如画布元素、多媒体元素等,也去除了一些原来的标准中不规范或没什么用的元素。
  • 支持本地离线存储。
  • 全面支持CSS3。

1.画布canvas

<canvas>标签定义画布,实际就是一个矩形框,在js中获取到这个画布对象进行绘图。

<canvas id="myCanvas" width="200" height="200"></canvas>
<script>
var c=document.getElementById("myCanvas");
var ctx=c.getContext("2d");
ctx.fillStyle="#FF0000";
ctx.fillRect(0,0, 100, 100);
</script>

2.SVG矢量图

SVG是一种使用XML描述2d图形的语言,可以在HTML页面中直接嵌入SVG数据显示矢量图。SVG中的每个绘制的图形都被视为对象,可以使用js操作也可以添加事件处理。适合带有大型渲染区域的应用,如谷歌地图,不适合游戏应用。

<svg xmln="http://www.w3.org/2000/svg" version="1.1" height="190">
    <polygon points="100,10 40,180 190,60 10,60 160,180" />
</svg>

3.MathML

MathML是一种基于XML的用于在web上书写数学符号和公式的标记语言,在HTML中可以通<math>标准嵌入在页面中。

<math xmln="http://www.w3.org/1998/Math/MathML">
    <mrow>
        <msup><mi>a</mi><mn>2</mn></msup>
        <mo>+</mo>
        <msup><mi>b</mi><mn>2</mn></msup>
        <mo>=</mo>
<msup><mi>c</mi><mn>2</mn></msup>
    </mrow>
</math>

4.拖放

在HTML5中,任何元素都可以拖放。

<script>
    function drag(ev)
    {
        ev.dataTransfer.setData("Text", ev.target.id);
    }

    function allowDrop(ev)
    {
        ev.preventDefault();
    }

    function drop(ev)
    {
        ev.preventDefault();
        var data=ev.dataTransfer.getData("Text");
        ev.target.appendChild(document.getElementById(data));
    }
</script>
<img draggable="true" ondragstart="draw(event)">
<div ondrop="drop(event)" ondragover="allowDrop(event)"></div>

5.音频视频

音频使用标签<audio>,视频使用标签<video>。

6.表单

HTML5中新增了很多新的input类型,类型增加了日期、时间、颜色、电子邮件等,提供了更好的输入控制和验证。另外还新增了几种表单标签:

  • <datalist>:选项列表。
  • <keygen>:密钥生成器。
  • <output>:输出。

另外每种标签增加了很多新的属性,用于对标签进行更好的控制。

7.Web存储

HTML5的Web存储是一种比cookie更好的本地存储方式。用于存储对象的两上对象是localStorage和sessionStorage:

  • localStorage:用于长久保存一个网站的数据,没有过期时间,直到手动删除。
  • sessionStorage:用于临时保存同一窗口或标签页的数据,在关闭窗口或标签页之后会删除。

使用之前先检查浏览器是否支持Web存储:

if (typeof(Storage)!=="undefined")
{
    //支持
}

localStorage

常用的API:

  • localStorage.setItem(key, value):保存数据
  • localStorage.getItem(key, value):读取数据
  • localStorage.removeItem(key):删除单个数据
  • localStorage.clear():删除所有数据
  • localStorage.key(index):获取某个索引的key

一般在使用时的方式:

localStorage.key = value; //保存数据
localStorage.key; //读取数据

当然,如果key是一个变量,就只能使用上面展示的API中的方式了。

sessionStorage

API、用法和localStorage是一样的,只是其数据在网页关闭后会清除。

8.Web SQL

Web SQL并不是HTML5标准的一部分,它是一个独立的规范,引入了一组使用SQL操作客户端数据库的API。这个规范中有3个核心方法:

  • openDatabase:使用现有的数据库或新建的数据库创建一个数据库对象。

  • transaction:控制一个事务,以及基于这种事务的提交或回滚。

  • executeSql:执行实际的SQL语句。

    var db = openDatabase('mydb', '1.0', 'Test DB', 2 * 1024 * 1024)

参数分别是数据库名称、版本号、描述文本、数据库大小,回调,最后一个参数可有可无。

db.transaction(function (tx){
    tx.executeSql('Sql语句');
});

executeSql中还可以增加其他参数来对结果进行控制。

9.应用程序缓存

HTML5引入了应用程序缓存,这样Web应用可进行缓存,缓存了之后不联网也可以使用。

10.Web Worker

Web worker是运行在后台的JavaScript,不会影响页面的性能。

11.服务器发送事件Server-Sent Events

通过SSE可以让网页自动获取来自服务器的更新,这除了在页面中添加对应的处理,在服务器端也要支持发送事件。服务器的新消息就是通过这种方式发送的?

12.WebSocket

WebSocket是HTML5开始提供的一种在单个TCP连接上进行全双工通讯的协议。在WebSocket API中,浏览器和服务器只需要做一个握手的动作,浏览器和服务器之间就形成了一条快速通道,两者之间就可以进行数据交换了。

最后编辑于
©著作权归作者所有,转载或内容合作请联系作者
  • 序言:七十年代末,一起剥皮案震惊了整个滨河市,随后出现的几起案子,更是在滨河造成了极大的恐慌,老刑警刘岩,带你破解...
    沈念sama阅读 204,684评论 6 478
  • 序言:滨河连续发生了三起死亡事件,死亡现场离奇诡异,居然都是意外死亡,警方通过查阅死者的电脑和手机,发现死者居然都...
    沈念sama阅读 87,143评论 2 381
  • 文/潘晓璐 我一进店门,熙熙楼的掌柜王于贵愁眉苦脸地迎上来,“玉大人,你说我怎么就摊上这事。” “怎么了?”我有些...
    开封第一讲书人阅读 151,214评论 0 337
  • 文/不坏的土叔 我叫张陵,是天一观的道长。 经常有香客问我,道长,这世上最难降的妖魔是什么? 我笑而不...
    开封第一讲书人阅读 54,788评论 1 277
  • 正文 为了忘掉前任,我火速办了婚礼,结果婚礼上,老公的妹妹穿的比我还像新娘。我一直安慰自己,他们只是感情好,可当我...
    茶点故事阅读 63,796评论 5 368
  • 文/花漫 我一把揭开白布。 她就那样静静地躺着,像睡着了一般。 火红的嫁衣衬着肌肤如雪。 梳的纹丝不乱的头发上,一...
    开封第一讲书人阅读 48,665评论 1 281
  • 那天,我揣着相机与录音,去河边找鬼。 笑死,一个胖子当着我的面吹牛,可吹牛的内容都是我干的。 我是一名探鬼主播,决...
    沈念sama阅读 38,027评论 3 399
  • 文/苍兰香墨 我猛地睁开眼,长吁一口气:“原来是场噩梦啊……” “哼!你这毒妇竟也来了?” 一声冷哼从身侧响起,我...
    开封第一讲书人阅读 36,679评论 0 258
  • 序言:老挝万荣一对情侣失踪,失踪者是张志新(化名)和其女友刘颖,没想到半个月后,有当地人在树林里发现了一具尸体,经...
    沈念sama阅读 41,346评论 1 299
  • 正文 独居荒郊野岭守林人离奇死亡,尸身上长有42处带血的脓包…… 初始之章·张勋 以下内容为张勋视角 年9月15日...
    茶点故事阅读 35,664评论 2 321
  • 正文 我和宋清朗相恋三年,在试婚纱的时候发现自己被绿了。 大学时的朋友给我发了我未婚夫和他白月光在一起吃饭的照片。...
    茶点故事阅读 37,766评论 1 331
  • 序言:一个原本活蹦乱跳的男人离奇死亡,死状恐怖,灵堂内的尸体忽然破棺而出,到底是诈尸还是另有隐情,我是刑警宁泽,带...
    沈念sama阅读 33,412评论 4 321
  • 正文 年R本政府宣布,位于F岛的核电站,受9级特大地震影响,放射性物质发生泄漏。R本人自食恶果不足惜,却给世界环境...
    茶点故事阅读 39,015评论 3 307
  • 文/蒙蒙 一、第九天 我趴在偏房一处隐蔽的房顶上张望。 院中可真热闹,春花似锦、人声如沸。这庄子的主人今日做“春日...
    开封第一讲书人阅读 29,974评论 0 19
  • 文/苍兰香墨 我抬头看了看天上的太阳。三九已至,却和暖如春,着一层夹袄步出监牢的瞬间,已是汗流浃背。 一阵脚步声响...
    开封第一讲书人阅读 31,203评论 1 260
  • 我被黑心中介骗来泰国打工, 没想到刚下飞机就差点儿被人妖公主榨干…… 1. 我叫王不留,地道东北人。 一个月前我还...
    沈念sama阅读 45,073评论 2 350
  • 正文 我出身青楼,却偏偏与公主长得像,于是被迫代替她去往敌国和亲。 传闻我的和亲对象是个残疾皇子,可洞房花烛夜当晚...
    茶点故事阅读 42,501评论 2 343

推荐阅读更多精彩内容

  • HTML基础 本文包括 HTML基本知识与结构 HTML常见标签 标签写法与嵌套的讨论 HTML、CSS、java...
    廖少少阅读 2,077评论 2 21
  • html简介: HTML学习总结慕课网 一、html介绍 (一)html和Css的关系 HTML是网页内容的载体。...
    数独题阅读 658评论 0 1
  • 浏览器请求数据过程 1.URL http://127.0.0.1/index.html(浏览器会自动添加80) h...
    菜鸟白泽阅读 727评论 0 0
  • 原 Blog 链接:HTML基础学习笔记 自学 html 基础笔记 Web 前端简单介绍 web 前端包含: pc...
    任凱阅读 1,377评论 0 5
  • 1.在聊天页面里,我们可以看到双方的页面工具栏是不一样的。TIM删除了QQ空间、动态、游戏等和办公无关的功能,提供...
    Wtow_bc69阅读 520评论 0 0