1 认识什么是纯文本文件txtwindows中自带有一个软件,叫做记事本。记事本保存的文档格式就是txt格式,就是英语text的缩写。术语上称这个文件叫做“纯文本文件”。txt文件,只能够保存文本内容,是无法记录文本样式的。(相对于doc文件而言,doc文件是可以存储文本的内容和样式,所以doc和txt存储同样的内容,doc比txt要大)纯文本文件具有如下特点:1、只有文本,没有样式;2、用记事本等纯文本编辑器可读,不是乱码。html、css、js都是纯文本文件。2 HTML是负责描述文档语义的语言html是英语HyperText Markup Language的缩写,即超文本标记语言。.html就是网页的格式。纯文本txt文件是不能够描述文档的语义的,如文档中不知道谁是主标题,谁是副标题,谁是段落。所以html应运而生。即通过html标签对,来给文本增加语义。现在业界的标准,网页技术严格的三层分离:html就是负责描述页面的语义;css负责描述页面的样式;js负责描述页面的动态效果的。所以,html不能够让文字居中,不能够更改文字字号、字体、颜色。因为这些都是属于css样式范畴;html不能够让盒子运动起来,这些属性属于js行为范畴。3 html中,除了语义,其他什么都没有html是一个纯文本文件(可以由txt文件更改后缀名而来),用一些标签来描述文字的语义,这些标签在浏览器页面中是看不到的,所以称之为“超文本”。html只能做一件事,即通过标签对,给文本增加语义,这是html唯一能做的。4 sublime任何的纯文本编辑器都能够编辑html,比如说记事本、editplus、notepad++。比较有名的专门制作网页的工具有:
1、DreamWeaver (Adobe公司的产品,这个东西已经过时);2、Sublime (高效率的程序书写工具);3、WebStorm (更高级的项目级别编程工具)。sublime的中文意思是“华丽的”,是2011年开始流行的代码编译器,可以编辑java、c、php等多门语言。对html、css、js支持非常好,界面也非常漂亮,安装简单、小巧、插件多。sublime3已集成常用插件网盘下载:https://pan.baidu.com/s/1sugysbl7Wpm1mTpcE6JzJgsublime中的常用快捷键:ctrl+滚轮:放大缩小文字;ctrl+shift+d:复制当前行;ctrl+shift+k:删除当前行;ctrl+shift+↑:上移当前行;ctrl+shift+↓:下移当前行;1、键入u,后加上tab键可生成<u></u>标签;2、键入html:xt,后按ctrl+E,然后按下enter键,sublime可生成一个标准版本的html格式的骨架。

<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd"><html xmlns="http://www.w3.org/1999/xhtml" xml:lang="en"><head><meta http-equiv="Content-Type" content="text/html;charset=UTF-8"><title></title></head><body></body></html>3、按住ctrl键,点击所要编辑的多行,可同时进行编辑。4、li*10,后按tab键可生成多行li标签。(需要注意的是,在编辑页面的时候需要先保存页面)5 html骨架5.1 文档声明头任何一个标准的HTML页面,第一行一定是一个以<!DOCTYPE ......>开头的语句,这一行,就是文档声明头,DocType Declaration。此标签可告知浏览器文档使用的是哪种HTML或者是XHTML规范。使用sublime的快捷键html:xt生成的html骨架是HTML4.01这个版本,这个版本是IE6开始兼容的。而HTML5是IE9开始兼容的。但IE6/7/8这些浏览器还不能够过早的淘汰,所以这几年网页还是应该使用HTML4.01来制作。而手机、移动端的网页开发,就可以使用HTML5了。HTML4.01里面有两大规范,每大规范里面又各有3种小规范,所以一共有6种规范。(为什么定义两大规范,其原因是因为HTML觉得有些规定不够严谨,比如说标签是否可以使用大写字母等,所以HTML把一些规范严格的标准,有制定了一个XHTML1.0.在XHTML中的字母X,就表示“严格的”。大规范大规范里的小规范HTML4.011、Strict:严格的,体现在一些标签不能使用,比如u;2、Transitional:普通的;3、Frameset:带有框架的页面XHTML1.0 (其严格体现在小写标签、闭合、引号)1、Strict:严格的,体现在一些标签不能使用,比如u;2、Transitional 普通的(使用sublime的快捷键html:xt生成的html骨架,x表示xhtml,t表示transitional);3、Frameset:带有框架的页面strict表示“严格的”,这种严格体现在有一些标签不能够使用。比如说u标签,就是可以让一个文本加上下划线,但是这和HTML的本质有冲突,即HTML只能够负责语义,不能够负责样式,而u这个下划线就是样式,所以在strict中是不能够使用u标签的。一般页面中偶尔要使用一些类似u这种标签(当做css钩子使用),所以选择XHTML1.0中的transitional版本最为合适。5.2 字符集字符集用meta标签定义,meta表示“元配置”,就是表示基本的配置项目。charset就是charactor set“字符集”的意思。中文能够使用的字符集有两种:第一种:UTF-8,即<meta http-equiv="Content-Type" content="text/html;charset=UTF-8">;第二种:gb2312,即<meta http-equiv="Content-Type" content="text/html;charset=gb2312">,第二种也可以写成gbk,即<meta http-equiv="Content-Type" content="text/html;charset=gbk">。UTF-8是国际通用字库,里面涵盖了所有地球上所有人类的语言文字,比如阿拉伯文、汉语、韩文等;而gb2312是国标,是中国的字库,里面仅仅涵盖了汉字和一些常用外文,以及一些常用的符号。在字库规模方面,由于UTF-8里面保存了世界上所有人类语言,所以描述一个汉字需要的码更多,即UTF-8里面存储了一个汉字3个字节,而gb2312中存储一个汉字2个字节。保存大小:UTF-8(更臃肿、加载更慢) > gb2312(更小巧、加载更快)。需要注意,浏览器就是通过meta配置来看网页是属于什么字符集的,比如你保存时候的meta配置,和保存时编码格式不一致,那么浏览器就会出现乱码现象。
5.3 关键字和页面描述meta除了可以设置字符集,还可以设置关键字和页面描述。设置页面描述:

<meta name="Description" content="网易是中国领先的互联网技术公司,为用户提供免费邮箱、游戏、搜索引擎服务,开设新闻、娱乐、体育等30多个内容频道,及博客、视频、论坛等互动交流,网聚人的力量。" />只要设置Description页面配置,那么百度搜索结果中就能够显示这些语句,这个技术叫做SEO,即search engine optimization,搜索引擎优化。
定义关键字:

<meta name="Keywords" content="网易,邮箱,游戏,新闻,体育,娱乐,女性,亚运,论坛,短信" />这些关键字,就是告诉搜索引擎,这个网页是干什么的,能够提高搜索命中率。6 HTML的基本语法特性6.1 HTML对换行不敏感,对tab不敏感HTML只在乎标签的嵌套结构,嵌套的关系,即谁嵌套了谁,谁被谁嵌套了,和换行、tab无关。换不换行、tab不tab,都不影响页面的结构。HTML不是依靠缩进来表示嵌套的,就是看标签的包裹关系,但是,有良好的缩进,代码更易读。空格、tab和换行都会占据字节,百度为了追求极致的显示速度,所以HTML标签都没有换行、也没有缩进,HTML和换不换行没有关系,标签的层次依然清晰,只不过程序员不可读而已。6.2 空白折叠现象HTML中所有的文字之间,如果有空格、换行或者是tab都将被折叠为一个空格显示。即如下代码:

<p>热热 爱爱</p>显示的是后被折叠了:
6.3 标签必须要求严格封闭标签不封闭是灾难性的结果:

<title>欢迎<title>7 html标签上的说明7.1 html标签等级分类html标签是分等级的,html将所有的标签分为两种:容器级和文本级。顾名思义,容器级的标签,里面理论上可以放置任何东西(如h是容器级的标签。理论上里面可以放置p、ul,语法上的允许,在语义上,不要这么写。);而文本级标签里面,只能放置文字、图片、表单元素等。(如p标签是一个文本级标签,p里面只能够放置文字、图片、表单元素等)正确写法:
```
<h4>个人签名</h4>
<p>
何处不流浪,归途是故乡
</p>

错误写法:

<p><h4>个人签名</h4>何处不流浪,归途是故乡</p>错误写法使用Chrome的F12审查,你会发现,浏览器自己把p封闭掉了,不让去包裹h2。
附加说明:Chrome浏览器是世界上对HTML5支持最好的浏览器,提供了非常好的开发工具,非常适合开发人员使用。(审查元素功能的快捷键是F12)7.2 img标签HTML页面中不能够直接插入图片,而是插入图片的引用地址,所以也要把图片上传到服务器中。插入方法为:<img src="baby.jpg" alt="可爱小宝宝" />,src是英文source“资源”的简写。alt是英文中“alternate”替代的意思,就表示不管发生什么原因,当这个图片无法被显示的时候,出现的替代文字(有的浏览器不支持)。关于src属性值相对路径的问题,../表示可以为上一层文件夹,../../表示为上一层的上一层的文件夹。(相对路径不会出现以下这种情况:aaa/../bbb/1.jpg。即../要么不写,要么就写在开头。)面试题:如下有个文件层次图,能在index.html页面中,插入图片1.png的语句为:<img src="../../photo/1.png" />。
解释:document为顶级文件夹,里面有两个文件夹work和photo。work中又有一个文件夹叫做myweb。myweb文件夹中有index.html。所以index.html在myweb文件夹中,上一级就是work文件夹,上两级就是document文件夹。通过document文件夹当做一个中转站,进入photo文件夹,就可以找到1.png。7.3 超级链接的基本语法一个网站,是由很多html网页组成的,html网页之间能够通过超级链接相互跳转,从而形成“网”。语法为:<a href="1.html" title="悬停文本" target="_blank">链接的内容</a>。a是英文anchor“锚”的意思,是一个文本级的标签;href属性是英文hypertext reference超文本地址的缩写;target属性表示是否在新窗口中打开,blank为“空白”的意思,表示新建一个空白窗口;title属性表示悬停文本。7.4 页面中的锚点页面当中可以有锚点,所谓的锚点,就是一个小标记,这个小标记是用户不可察觉的,用户不知道这里有一个标记。锚点用name属性进行设置,一个a标签如果有name属性(或者是id属性),就说明是页面中的一个锚点。

<a name="wdzp">我的作品</a> 或者是 <a id="wdzp">我的作品</a>那么页面地址栏上写#wdzp就能够让这个锚点置于页面最顶端显示。这里也可以使用超级链接,指向页面中的锚点,那么就是:<a href="#wdzp">点击我就查看我的作品</a>。(也可以从一个页面中使用a标签链接到另一个页面中标记的锚点)7.5 无序列表无序列表,用来表示一个列表的语义,并且每个项目与每个项目之间,是不分先后的。ul就是英文中unordered list,“无序列表”的意思;li就是英文list item,“列表项”的意思。无序列表时一个“组标签”,即要么不写,要么就写一组。(也就是说,li不能够单独存在,必须包裹在ul里面;反过来也是,ul的直接子标签不能是别的东西,只能是li)

<ul> <li>北京</li> <li>上海</li> <li>广州</li></ul>

以下写法错误,li必须用ul包裹:

<li>北京</li> <li>上海</li> <li>广州</li>下面写法也错误,ul里面直接子标签只能有li标签,而不能有其他:(但是li是一个容器级标签,li里面什么都能放,甚至于li标签中可以包含ul标签)

<ul> <h4>中国主要城市</h4> <li>北京</li> <li>上海</li> <li>广州</li></ul>浏览器会给默认的无序列表项添加小圆点的“先导符号”,这里强调,ul的作用,并不是给文字添加小圆点,而是添加无序列表的“语义”。7.6 有序列表order list,有序列表,用ol表示。

<ol> <li>体面</li> <li>下一秒</li> <li>她说</li></ol>ol和ul只是语义上的不一样,怎么使用都是一样的。(ol这个东西用的不多,如果想表达顺序,一般也是用ul)7.7 定义列表定义列表也是一个组标签,不过比较复杂,出现了三个标签:
1、dl表示definition list,定义列表;2、dt表示definition title,定义标题;3、dd表示definition description,表示定义描述词。dt、dd只能在dl中;而且dl的直接子标签只能有dt、dd。

<dl> <dt>广州</dt> <dd>中国南大门,有珠江、小蛮腰</dd> <dt>上海</dt> <dd>魔都,有外滩、东方明珠塔、黄浦江</dd></dl>表达语义是两个层面的:1、是一个列表,列出了北京、上海、广州三个项;2、每个词都有自己的描述项。(即,dd是用于描述dt的)定义列表用法可以非常灵活,可以一个dt配多个dd:

<dl> <dt>广州</dt> <dd>中国南大门,有珠江、小蛮腰</dd> <dd>人特别多</dd> <dt>上海</dt> <dd>魔都,有外滩、东方明珠塔、黄浦江</dd></dl>还可以拆分开,让每一个dl里面只有一个dt和dd,这样子感觉会清晰一些:

<dl> <dt>广州</dt> <dd>中国南大门,有珠江、小蛮腰</dd> <dd>人特别多</dd></dl><dl> <dt>上海</dt> <dd>魔都,有外滩、东方明珠塔、黄浦江</dd></dl>此外,dt、dd都是容器级标签,想放什么都可以。(页面编辑时,用什么标签,不是根据样子决定的,而是语义决定。)7.8 div和span

div和span是非常重要的标签,div的语义是division“分割”;而span的语义就是span”范围、跨度”。在css设计样式时,这两个标签,都是最重要的“盒子”。

<div> <h4>中国主要城市</h4> <ul> <li>北京</li> <li>上海</li> <li>广州</li> </ul></div><div> <h4>美国主要城市</h4> <ul> <li>纽约</li> <li>洛杉矶</li> <li>西雅图</li> </ul></div>在浏览器中,div默认是不会增加任何的效果改变的,但是语义改变了,div中的所有元素就是一个小区域。div是一个容器级标签,里面什么都能够放置,甚至于可以放置div本身。span也是表达“小区域、小跨度”的意思,但是是一个文本级标签。也就是说,span只能够放置文字、图片、表单元素。(即span里面是放置小元素的,而div里面是放置大东西的。)div标签也称之为布局标签,如下:

<div class="header"> <div class="logo"></div> <div class="nav"></div></div><div class="content"> <div class="guanggao"></div> <div class="dongxi"></div></div><div class="footer"></div>我们称呼这种模式叫做“div+css”,div标签负责布局,负责结构,负责分块,而css负责样式。7.8 表单元素:文本框架、密码框、单选按钮、复选框表单就是收集用户信息的。就是让用户填写、选择的。

<div> <h4>欢迎注册本网站</h4> <form> 所有的表单内容,都要写在form标签里面 </form></div>form是英文表单的意思。form标签里面有action属性和method属性。action属性表示表单提交至哪里。method属性表示用什么HTTP方法提交,有get、post两种方式。


文本框:<input type="text" value="默认有的值" />;input表示“输入”,指的是一个“输入小部件”,“type”属性表示所要选择的类型,text值表示类型是一个文本框的输入小部件。value属性表示“值”。value值的填写表示默认有的值。

密码框:<input type="password" />单选按钮:也是input标签,type为radio;name属性值相同的单选框只能选其一。

<input type="radio" name="gender" /> 男<input type="radio" name="gender" /> 女默认被选择,就应该书写checked=”checked”。


复选框:也是input标签,type为checkbox。(name属性值相同)

<p>请选择你的爱好:<input type="checkbox" name="hobby"/> 睡觉<input type="checkbox" name="hobby"/> 吃饭<input type="checkbox" name="hobby"/> 足球<input type="checkbox" name="hobby"/> 篮球</p>7.9 下拉列表和文本域select就是“选择”, option为”选项“。select标签和ul、ol、dl一样,都是组标签:

<select><option>北京</option><option>河北</option><option>河南</option></select>多行文本框(文本域):<textarea cols="30" rows="10">