第一章 HTML

1、系统结构:

B/S架构(Browser/Server)

Browser支持哪些语言:HTML CSS JavaScript

写HTML CSS JavaScript代码的这波人职位叫做:WEB前端开发工程师。(Java程序员目前来看也需要会一些前端的东西。)前端页面上的图片需要UI设计师完成。(PS对java程序员来说没有太高的要求)S是服务器端Server,Server端的语言很多:C C++ Java python…..(我们主要是使用Java语言完成服务器端的开发)

B/S架构的系统有什么优点和缺点?
优点:升级方便,只升级服务器端代码即可。维护成本低。
缺点:速度慢、体验不好、界面不炫酷

企业内部的解决方案都是采用B/S架构的系统,因为企业内部办公需要的一些系统不需要炫酷,不需要特别好的用户体验,只要能做数据的增删改查即可。并且企业内部更注重维护的成本。

B/S架构的系统有哪些代表?
京东
百度
天猫
….

C/S架构(Client / Server)

缺点:升级麻烦,维护成本较高
优点:速度快,体验好,界面炫酷(娱乐型的系统多数是C/S架构的)

常见的C/S架构的系统:
QQ
微信
支付宝
….

2、什么是HTML?怎么开发HTML?怎么运行HTML?

HTML:
Hyper Text Markup Language (超文本标记语言)由大量的标签组成,每一个标签都有开始标签和结束标签
超文本:
流媒体、图片、声音、视频….

  1. <标签>
  2. <标签>
  3. <标签 属性名="属性值" 属性名="属性值">
  4. </标签>
  5. </标签>
  6. </标签>

HTML开发的时候使用普通的文本编辑器就行,创建的文件扩展名是.html或者.htm;HTML也有专业的开发工具,例如:DreamWeaver、HBuilder…..

直接采用浏览器打开HTML文件就是运行

3、HTML是谁制定的?

W3C(世界万维网联盟)
W3C制定了HTML的规范,每个浏览器生产厂家都会遵守规范。HTML程序员也会按照这个规范去写代码。HTML规范目前最高的版本是:HTML5.0,简称H5,我们这里学习HTML4.0(主要是学习一下HTML的基础用法)
W3C制定了很多规范:HTML/XML/http协议/https协议……

4、网页基本结构

4.1. 注释:

  1. <!--
  2. 1、这是HTML的注释
  3. 2、加上以下代码的第一行就表示HTML5语法。去掉就表示HTML4.0
  4. 3、HTML不区分大小写,语法松散不严格。
  5. -->

4.2. 一个简单网页最基本的结构

  1. <!doctype html>
  2. <!--根-->
  3. <html>
  4. <!--头-->
  5. <head>
  6. <!--网页标题,显示在网页左上角-->
  7. <title>网页的标题</title>
  8. </head>
  9. <!--体-->
  10. <body>
  11. 网页的主体内容,欢迎学习HTML!
  12. </body>
  13. </html>

4.3、基本标签

  1. <!--段落标记-->
  2. <p>《黛玉葬花》是文学名著《红楼梦》中的经典片段。</p>
  3. <!--标题字:是HTML预留的格式,和word中的标题字相同-->
  4. <h1>标题字</h1>
  5. <h2>标题字</h2>
  6. <h3>标题字</h3>
  7. <h4>标题字</h4>
  8. <h5>标题字</h5>
  9. <h6>标题字</h6>
  10. <!--换行标记,br标签是一个独目标记-->
  11. hello
  12. world!
  13. hello <br>world!
  14. <!--横线,独目标记-->
  15. <hr>
  16. <!--color和width都是hr标签的属性-->
  17. <hr color="red" width="50%">
  18. <!--语法太松散了。-->
  19. <hr color='green' width=30%>
  20. <!--预留格式-->
  21. <pre>
  22. for i = 1 to 10
  23. print i
  24. next i
  25. </pre>
  26. <del>删除字</del>
  27. <ins>插入字</ins>
  28. <b>粗体字</b>
  29. <i>斜体字</i>
  30. 10<sup>2</sup>
  31. 10<sub>m</sub>
  32. <!--字体标签-->
  33. <font color="red" size="50">字体标签</font>

4.4、实体符号

b<a> 
```html
  1. <!--
  2. <table border="1px" width="300px">
  3. -->
  4. <table align="center" border="1px" width="60%" height="150px">
  5. <!--align对齐方式-->
  6. <tr align="center">
  7. <td>a</td>
  8. <td>b</td>
  9. <td>c</td>
  10. </tr>
  11. <tr>
  12. <td>d</td>
  13. <td>e</td>
  14. <td>f</td>
  15. </tr>
  16. <tr>
  17. <td>x</td>
  18. <td>y</td>
  19. <td align="center">z</td>
  20. </tr>
  21. </table>
  1. <a name="asPPL"></a>
  2. ### 4.5、单元格合并与th标签
  3. ```html
  4. <!--注意事项:
  5. 1、row合并的时候,删除“下面的”单元格
  6. 2、col合并的时候,对删除哪个没有要求。
  7. -->
  8. <table border="1px" width="50%">
  9. <tr>
  10. <!--
  11. <td>员工编号</td>
  12. <td>员工薪资</td>
  13. <td>部门名称</td>
  14. -->
  15. <!-- th 标签也是单元格标签,比td多的是居中、加粗。-->
  16. <th>员工编号</th>
  17. <th>员工薪资</th>
  18. <th>部门名称</th>
  19. </tr>
  20. <tr>
  21. <td>1</td>
  22. <td>2</td>
  23. <td>3</td>
  24. </tr>
  25. <tr>
  26. <td>a</td>
  27. <td>b</td>
  28. <td rowspan="2">f</td>
  29. </tr>
  30. <tr>
  31. <td colspan="2">d</td>
  32. <!--
  33. <td>f</td>
  34. -->
  35. </tr>
  36. </table>

4.6、thead、tbody、tfoot标签

  • 便于维护,将表格分成几个部分,没有其他作用
  1. <!doctype html>
  2. <html>
  3. <head>
  4. <!--这行代码的作用是告诉浏览器采用哪一种字符集打开当前页面。
  5. 注意:并不是设置当前页面的字符编码方式。-->
  6. <meta charset="gbk">
  7. <title>thead tbody tfoot 在table中不是必须的,只是这样做便于后期的JS代码的编写。</title>
  8. </head>
  9. <body>
  10. <table border="1px" width="50%">
  11. <!--头-->
  12. <thead>
  13. <tr>
  14. <th>员工编号</th>
  15. <th>员工薪资</th>
  16. <th>部门名称</th>
  17. </tr>
  18. </thead>
  19. <!--体-->
  20. <tbody>
  21. <tr>
  22. <td>1</td>
  23. <td>2</td>
  24. <td>3</td>
  25. </tr>
  26. <tr>
  27. <td>a</td>
  28. <td>b</td>
  29. <td rowspan="2">f</td>
  30. </tr>
  31. <tr>
  32. <td colspan="2">d</td>
  33. </tr>
  34. </tbody>
  35. <!--脚-->
  36. <tfoot>
  37. <tr>
  38. <td>1</td>
  39. <td>2</td>
  40. <td>3</td>
  41. </tr>
  42. </tfoot>
  43. </table>
  44. </body>
  45. </html>

4.7、背景颜色和背景图片

  1. <head>
  2. <meta charset="utf-8">
  3. <title>背景颜色和背景图片</title>
  4. </head>
  5. <!--
  6. bgcolor : 设置背景色
  7. background : 设置背景图片
  8. 以上的设置都是对背景进行设置。
  9. -->
  10. <body bgcolor="red" background="img/bd_logo1.png">
  11. </body>

4.8、图片

  1. <!--
  2. 1、设置图片宽度和高度的时候,只设置宽度,高度会进行等比例缩放。
  3. 2、img标签就是图片标签
  4. 3、src属性是图片的路径
  5. 4、width设置宽度,height设置高度
  6. 5、title设置鼠标悬停时显示的信息。
  7. 6、alt设置图片加载失败时显示的提示信息。
  8. -->
  9. <img src="img/bd_logo1.png" width="100px" title="我是百度图片哦" alt="图片找不到哦!"/>
  10. <img src="img/bd_logo1.png" width="100px" title="我是百度图片哦" alt="图片找不到哦!"></img>
  11. <br><br><br>
  12. <img src="img/bd_logo1.png" />

4.9、超链接(热链接)

  • 超链接的作用:

通过超链接可以从浏览器向服务器发送请求
浏览器向服务器发送数据(请求:request)
服务器向浏览器发送数据(响应:response)

  • B/S结构的系统:每一个请求都会对应一个响应。

  • 用户点击超链接和用户在浏览器地址栏上直接输入URL,有什么区别?

本质上没有区别,都是向服务器发送请求;从操作上来讲,超链接使用更方便。

  1. <!--
  2. 超链接的特点:
  3. 有下划线
  4. 鼠标停留在超链接上面显示小手形状。
  5. 点击超链接之后还能跳转页面。
  6. -->
  7. <a href="http://www.baidu.com">百度</a>
  8. <a href="http://news.baidu.com/">百度新闻</a>
  9. <a href="http://www.jd.com/">京东商城</a>
  10. <a href="http://www.tmall.com/">天猫</a>
  11. <a href="http://www.126.com/">126邮箱</a>
  12. <br><br>
  13. <!--
  14. href:hot references 热引用
  15. href属性后面一定是一个资源的地址。
  16. href后面的路径可以是绝对路径也可以是相对路径,可以是网络中某个资源的路径,也可以是本地资源的路径。
  17. -->
  18. <a href="007-背景颜色和背景图片.html">007</a>
  19. <!--图片超链接-->
  20. <a href="https://www.hao123.com/">
  21. <img src="img/hao123.png" width="120px"/>
  22. </a>
  23. <!--
  24. 超链接有一个target属性:
  25. 可取值:
  26. _blank : 新窗口
  27. _self : 当前窗口(默认就是这种方式。)
  28. _top : 顶级窗口
  29. _parent : 父窗口
  30. -->
  31. <a href="https://www.hao123.com/" target="_self">
  32. <img src="img/hao123.png" width="120px"/>
  33. </a>

4.10、有序列表和无序列表

  1. <!--有序列表-->
  2. <ol type="I">
  3. <li>水果
  4. <ol type="a">
  5. <li>苹果</li>
  6. <li>西瓜</li>
  7. <li>桃子</li>
  8. </ol>
  9. </li>
  10. <li>蔬菜
  11. <ol>
  12. <li>西红柿</li>
  13. </ol>
  14. </li>
  15. <li>甜点</li>
  16. </ol>
  17. <!--无序列表-->
  18. <ul type="circle">
  19. <li>中国
  20. <ul type="square">
  21. <li>北京
  22. <ul type="disc">
  23. <li>东城区</li>
  24. <li>西城区</li>
  25. <li>海淀区</li>
  26. <li>朝阳区</li>
  27. </ul>
  28. </li>
  29. <li>天津</li>
  30. <li>上海</li>
  31. </ul>
  32. </li>
  33. <li>美国</li>
  34. <li>日本</li>
  35. </ul>

5、表单

1、表单有什么用?
收集用户信息。表单展现之后,用户填写表单,点击提交按钮提交数据给服务器。

2、怎么画一个表单?
使用form标签画表单。

3、一个网页当中可以有多个表单form。

4、表单最终是需要提交数据给服务器的,form标签有一个action属性,这个属性用来指定服务器地址:action属性用来指定数据提交给哪个服务器,action属性和超链接中的href属性一样,都可以向服务器发送请求(request)

5、http://192.168.111.3:8080/oa/save 这是请求路径,表单提交数据最终提交给:192.168.111.3机器上的8080端口对应的软件。

  1. <form action="http://192.168.111.3:8080/oa/save">
  2. <!-- 画一个提交按钮,这个按钮可以提交表单-->
  3. <!-- 画按钮可以使用input输入域,type="submit"的时候表示该按钮是一个提交按钮,具有提交表单的能力。-->
  4. <!-- 对于按钮来说,按钮的value属性用来指定按钮上显示的文本信息。-->
  5. <input type="submit" value="登录"/>
  6. <!--这是一个普通按钮,不具备提交表单的能力。-->
  7. <input type="button" value="设置按钮上显示的文本"/>
  8. </form>
  9. <a href="http://www.baidu.com">百度</a>
  10. <!--这个按钮和普通的超链接没什么太大的区别。(超链接和表单都可以向服务器发送请求,只不过表单发送请求的同时可以携带数据。)-->
  11. <form action="http://www.baidu.com">
  12. <input type="submit" value="百度" />
  13. </form>
  14. <br>
  15. <br>
  16. <form action="http://localhost:8080/jd/login">
  17. 用户名<input type="text" /><br>
  18. 密码<input type="password" /><br>
  19. <input type="submit" value="登录" />
  20. </form>
  21. <form action="http://localhost:8080/jd/login">
  22. <table>
  23. <tr>
  24. <td>用户名</td>
  25. <td><input type="text" name="username" /></td>
  26. </tr>
  27. <tr>
  28. <td>密码</td>
  29. <td><input type="password" name="userpwd" /></td>
  30. </tr>
  31. <tr align="center">
  32. <td colspan="2">
  33. <input type="submit" value="登录" />
  34. &nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;
  35. <input type="reset" value="清空" />
  36. </td>
  37. </tr>
  38. </table>
  39. </form>
  40. <!--submit必须放到form标签内部-->
  41. <input type="submit" value="登录" />
  42. <!--必须放到form标签内部-->
  43. <input type="reset" value="清空" />

6、表单是以什么格式提交数据给服务器的?
http://localhost:8080/jd/login?username=abc&userpwd=111
格式:action?name=value&name=value&name=value&name=value&name=value…
W3C的HTTP协议规定的,必须以这种格式提交给服务器。

重点强调: 表单项写了name属性的,一律会提交给服务器。不想提交这一项,就不要写name属性;文本框和密码框的value不需要程序员指定,用户输入什么value就是什么。 当name没有写的时候,该项不会提交给服务器。但是当value没有写的时候,value的默认值是空字符串””,会将空字符串提交给服务器。java代码得到的是:String username = “”;

7、form表单method属性:

get:采用get方式提交的时候,用户提交的信息会显示在浏览器的地址栏上

post:采用post方式提交的时候,用户提交的信息不会显示在浏览器地址栏上,当用户提交的信息中含有敏感信息,例如:密码,建议采用post方式提交

method属性不指定,或者指定get,这种情况下都是get;只有当method属性指定为post的时候才是post请求,剩下所有的请求都是get请求

post提交的时候提交的数据格式和get还是一样的,只不过不再地址栏上显示出来;POST提交的数据还是:name=value&name=value&name=value…..

  1. <form action="http://localhost:8080/jd/register">
  2. 用户名
  3. <input type="text" name="username"/>
  4. <br>
  5. 密码
  6. <input type="password" name="userpwd" />
  7. <br>
  8. 确认密码
  9. <input type="password"/>
  10. <br>
  11. 性别
  12. <input type="radio" name="gender" value="1" />
  13. <input type="radio" name="gender" value="0" checked/><!--单选按钮的value必须手动指定-->
  14. <br>
  15. 兴趣爱好
  16. <input type="checkbox" name="interest" value="smoke"/>抽烟
  17. <input type="checkbox" name="interest" value="drink" checked/>喝酒
  18. <input type="checkbox" name="interest" value="fireHair" checked/>烫头
  19. <br>
  20. 学历
  21. <select name="grade">
  22. <option value="gz">高中</option>
  23. <option value="dz">大专</option>
  24. <option value="bk" selected>本科</option> <!--默认选中-->
  25. <option value="ss">硕士</option>
  26. </select>
  27. <br>
  28. 简介 <!--文本域,文本域没有value属性,用户填写的内容就是value-->
  29. <textarea rows="10" cols="60" name="introduce"></textarea>
  30. <br>
  31. <input type="submit" value="注册" />
  32. <input type="reset" value="清空" />
  33. </form>
  34. <!--超链接也可以提交数据给服务器,但是提交的数据都是固定不变的。-->
  35. <!--超链接是get请求。不是post请求。-->
  36. <a href="http://localhost:8080/oa/save?username=zhangsan&password=111">提交</a>

6、下拉列表支持多选

  1. <!-- multiple="multiple" 支持多选的 size设置显示条目数量。-->
  2. <select multiple="multiple" size="2">
  3. <option>河北省</option>
  4. <option>河南省</option>
  5. <option>山东省</option>
  6. <option>山西省</option>
  7. </select>

7、file控件、隐藏域

  1. <!--file控件:文件上传专用。-->
  2. <input type="file" />
  3. <form action="http://localhost:8080/oa/save">
  4. <!--隐藏域:网页上看不到,但是表单提交的时候数据会自动提交给服务器。
  5. 对于一些不需要让用户知道,但需要提交给服务器的一些东西,可以使用该控件
  6. -->
  7. <input type="hidden" name="userid" value="111" />
  8. 用户代码<input type="text" name="usercode" />
  9. <input type="submit" value="提交" />
  10. </form>

8、readonly、disabled

  1. <!--
  2. readonly和disabled相同点:都是只读不能修改。
  3. 但是readonly可以提交给服务器,disabled数据不会提交(即使有name属性也不会提交。)
  4. -->
  5. <form action="http://localhost:8080/taobao/save">
  6. 用户代码<input type="text" name="usercode" value="110" readonly />
  7. <br>
  8. 用户姓名<input type="text" name="username" value="zhangsan" disabled />
  9. <br>
  10. <input type="submit" value="提交数据" />
  11. </form>

9、input控件的maxlength属性

  1. <!--
  2. maxlength 设置文本框中可输入的字符数量。
  3. -->
  4. <input type="text" maxlength="3" />

10、HTML中元素的id属性

  1. <!--
  2. 1、在HTML文档当中,任何元素(节点)都有id属性,id属性是该节点的唯一标识。所以在同一个HTML文档当中id值不能重复。
  3. 2、注意:表单提交数据的时候,只和name有关系,和id无关。
  4. 3、id有什么用?
  5. javascript语言:可以对HTML文档当中的任意节点进行增删改操作。
  6. javascript可以对HTML文档当中的任意节点进行增删改,那么增删改之前需要先拿到这个节点,通常我们通过id来拿节点对象。
  7. id的存在让我们获取元素(节点)更方便。
  8. 4、HTML文档是一棵树,树上有很多节点,每一个节点都有唯一的id。
  9. javascript主要就是对这棵DOM树上的节点进行增删改的。
  10. DOM(Document)树。
  11. -->
  12. <form id="myform">
  13. <input type="text" id="username" name="username"/>
  14. <input type="password" id="userpwd" name="userpwd"/>
  15. <!--id就是节点的身份证号码,不能重复。-->
  16. <!--
  17. <input type="text" id="username" />
  18. -->
  19. </form>

11、HTML中的div和span

  1. <!--
  2. 1、div和span是什么?有什么用?
  3. * div和span都可以称为“图层”
  4. * 图层的作用是为了保证页面可以灵活的布局。
  5. * 图层就是一个一个的盒子,div嵌套div就是盒子套盒子。
  6. * div和span是可以定位的,只要定下div的左上角的x轴和y轴坐标即可。
  7. 2、其实最早的网页是采用table进行布局的,但是table不灵活,太死板。
  8. 现代的网页开发中div布局使用最多,几乎很少使用table进行布局了。
  9. 3、div和span的区别?
  10. div独自占用一行(默认情况下)
  11. span不会独自占用一行。
  12. -->
  13. <div id="div1">我是一个DIV</div>
  14. <div id="div2">我是一个DIV</div>
  15. <span id="span1">我是一个SPAN标签</span>
  16. <span id="span2">我是一个SPAN标签</span>
  17. <div id="div3">
  18. <div>
  19. <div>test</div>
  20. </div>
  21. </div>