HTML: 基本语法
HTML
简介
标记语言
HTML(超文本标记语言),它不是一种编程语言,而是使用一个个标签来构建一个网页的框架,一个HTML文档就是一个WEB网页(而浏览器内含解析其内容的解析器);CSS负责网页的美化,JS负责网页的动态交互,而它负责网页的架构,CSS以及脚本都要在这个框架里定义
和编程语言的区别
Markdown就是一种标记语言,它们只是把一份文档通过标记来增加一些细节,然后展示出来,因此没有复杂的语法,只是定义了一个文档的结构、排布等。文档本身并没有实现部分,需要由解释器渲染才能有效展示。只有HTML代码的文档就是一静态网页,不会因为用户输入而发生实时变化(但可以将输入信息传输给服务器,及时更换一个新的网页,达到实时的效果)
而编程语言有更复杂的语法来实现更高效、多样的逻辑与功能,例如最基本的输入输出、计算、内存管理等。源文件本身包含许多底层的实现,经过翻译后可由系统执行
基本内容
输出标签
HTML不区分大小写,使用一条条元素来构建网页,每条元素一般由一对标签作为头尾,标签夹着的文本为内容,而标签内部的参数对为属性(其值一般不会显示),解释器通过标签及其属性来展现不同样式的内容;很多属性都与样式有关,这里尽量只介绍框架有关的属性。以下是常用标签:
<!DOCTYPE html>:这是一条声明,用于告诉浏览器使用特定的HTML版本解释器,这一条声明的是html5<!-- message -->:用于注释,message只会在源代码中被看见<html></html>:这是一份html文档的开头与结尾,定义了一整个html文档<head></head>:定义文档的头部内容,包括编码方式(meta)、文档标题(title)、插入脚本(scripts块,可以在<body>中定义,但习惯在<head>中)、文档样式等,它们不呈现在网页主体中,而会被解释器接受。以下是常用的只在<head>中定义的元素<title></title>:定义了在浏览器顶部的网页名称<meta>:定义了文档信息的信息(即元数据),例如属性charset指定了浏览器的编码方式,常见<meta charset="UTF-8">指定编码方式保证中文不会出现乱码<base>:定义基准链接,即其它所有使用相对链接的元素都会相对基准链接,只能定义一次<link>:定义文档与外部资源的联系,例如链接外部CSS
<body></body>:定义网页主体,其中内容将会展现给用户<header></header>:定义文档简介<h></h>:定义一行标题,从<h1>到<h6>标题等级递减,体现在文字加粗放大以及目录索引上<p></p>:定义一片段落文字,前后会添加换行<a></a>:定义一个链接,href属性指示链接地址链接- 链接可以是一个网页、锚点、本地文件、图片等,锚点链接即’#’开头的一串标记,类似于
Markdown,这个标记可以是id或name属性的值
- 链接可以是一个网页、锚点、本地文件、图片等,锚点链接即’#’开头的一串标记,类似于
<img></img>:定义一张图片,src属性指示图片地址,alt属性指示当图片无法显示时的可作替换的文本内容<table></table>:定义一个表格,border属性指示其边框样式<tr></tr>:定义表格的一行(table row)<th></th>:定义表格的表头单元格(table header)<td></td>:定义表格一般数据的单元格(table data)
<ul></ul>、<ol></ol>、<dl></dl>:定义无序(unordered)、有序(ordered)、自定义列表(definition)<li></li>:定义列表中的一项()<dt></dt>:定义自定义列表中的一项(definition term)<dd></dd>:定义列表上一项的注释(definition description)
- 文本格式化的常用标签有如下:
<br>:定义一次换行,可在<p>等内容中使用<hr>:定义一条水平分割线<b></b>与<i></i>:定义文字的粗体与斜体,它们是样式标签,属于无意义的文字加粗与倾斜,两者应作为最后的选择<strong></strong>与<em></em>:语义化标签,分别为特别强调与一般强调,可以做到<b>与<i>的效果,且在非视觉上(例如大声朗读)也有强调效果,这两者更常用<mark></mark>:定义高亮强调文字<small></small>:定义小号字体<sub></sub>与<sup></sup>:定义下标与上标字体<del></del>:定义划线字
- 其它类型字体渲染如下:
<pre></pre>与<code></code>:定义代码字体,前者不会忽视制表符和回车<abbr></abbr>:定义缩略词,赋予title属性后当光标悬浮其上时将会显示出来abbr<address></address>:其中应包含文档作者的相关信息如联系方式等,通常表现为斜体<blockquote></blockquote>、<q></q>、<cite></cite>:分别定义长(一个段落)、短(一句话)引用内容、引用来源。<q>
、<cite>,前两种标签含cite属性,用于指示引用来源(链接)
早期html标准存在一些无需加上关闭标签的元素,这在之后的XHTML标准(参考XML)中变为例如<br />的自我封闭元素,而HTML5对XHTML兼容,所以<br>、<br/>都可以使用
这些元素可以被分为区块元素与内联元素,前者与后者相比,会在内容开头加上换行符表示这是新的区块;为了更好地排版和优化框架,有如下标签:
<div></div>:定义一块元素,即将其中的所有内容归纳为一个区块来管理,可以配合样式表进行整块的修饰<span></span>:定义一个内联元素,即将其中的所有内容归纳为一个内联元素来管理,样式由内容决定
输入标签
html用表单来收集用户输入的信息,需要注意的是,html文档和解释器并不会处理这些信息,而是发送给服务器处理,处理后服务器会发送一个新的html文档给浏览器
<form></form>:定义一个收集信息的区域,含有些许控件用于检测事件后传输收集到的表单,action属性指定目标地址,method属性指定传输的方法<fieldset></fieldset>:定义表单的边框<legend></legend>:定义边框的标题
<input>:定义一个输入控件,type属性指定其类型,id属性指定其关联的label元素,name属性指定这个表单项的名字,value指定这个选项的内容<label></label>:定义一个表单项的标签,for属性指定这个表单项的id<select></select>:定义一个可下拉选项,name属性指定这个表单项的名字<option></option>:定义一个选项,value属性指定这个选项的内容,selected属性指定这个下拉选项的预先选好的选项(否则为第一个option元素)
<textarea></textarea>:定义一个用于输入多行文本的控件,cols和rows分别定义其宽高
html5提供的一些新控件如下:
<button></button>:定义一个按钮控件,其与<input type="button">的区别为支持更丰富的内容(例如图像)。不要随意将button元素放在表单里,因为它相当于<input type="submit">(提交按钮)
属性的值
id:每个html元素只有唯一的id,因此这个属性用于查找唯一值、设置锚点等name:name属性的一个值可以复用到多个html元素上,且会将它们绑定为一个整体传输数据;例如,单选框的所有选项的name属性应当一致,才能达到单选的效果。name属性是输入控件必不可少的一项,提交数据时只会提交含有name选项的元素value:指定该元素的内容,方便传输数据,有时可以改变;一些控件会显示它的值<option>的属性位:有selected(默认选中)、disabled(无法选中)、hidden(不显示该选项)<input>的type:其值有text(一般文本)、submit(提交按钮)、radio(单选框)、checkbox(复选框)、reset(重置按钮)、button(一般按钮)、password(密码文本,即隐藏文本)<input>的checked位:置位表示选中