HTML笔记
全套笔记:(点击跳转)
电子课件:(点击跳转)
1、一套规则,浏览器认识的规则。
2、开发者:
学习Html规则 (20个标签)
开发后台程序:
- 写Html文件(充当模板的作用) ******
- 数据库获取数据,然后替换到html文件的指定位置(Web框架)
3、本地测试
- 找到文件路径,直接浏览器打开
- pycharm打开测试
- 自写一个socket程序
#!/usr/bin/env python
# -*- coding:utf-8 -*-
# Author:Uson
'''文件名不能用模块名'''
''' 'module' object is not callable '''
''' module 'socket' has no attribute 'AF_INET' '''
'''360浏览器不支持'''
'''win10自带浏览器可以:http://localhost:8000/'''
'''
二进制三种写法:
1、b"Hello, Seven"
2、bytes("Hello, Seven", encoding="utf-8")
3、'hello'.encode('utf-8')
'''
import socket
def handle_request(client):
buf = client.recv(1024)
client.send(bytes("HTTP/1.1 200 OK\r\n\r\n", encoding="utf-8"))
# print("Buf:", buf)
f = open("index.html", 'rb')
data = f.read()
f.close()
client.send(data)
print("Send Done!")
def main():
sock = socket.socket(socket.AF_INET, socket.SOCK_STREAM)
# sock = socket.socket() #360浏览器不支持的问题
sock.bind(('localhost', 8000))
sock.listen(5) #最多接收5个请求
while True:
connection, address = sock.accept()
handle_request(connection)
connection.close()
if __name__ == '__main__':
main()
4、编写Html文件
<html(标签) lang="en"(属性)></html>
- doctype 对应关系(不同厂商对标签定义不同的一种标准对应关系)
- html标签,标签内部可以写属性 ====> html标签只能有一个
- 注释: <!-- 注释的内容 -->
5、标签分类
- 自闭合标签
<meta charset="UTF-8">
- 主动闭合标签
<title>智汇部落</title>
6、head标签中
- <meta -> 编码,跳转,刷新,关键字,描述,IE兼容
<meta http-equiv="X-UA-Compatible" content="IE=IE9;IE=IE8;" /> (ie6先出来,ie8以上版本是兼容版:加上这句话)
跳转:
<meta http-equiv="Refresh" Content="3" > 3s自动跳转该网页
<meta http-equiv="Refresh" Content="3;Url=http://www.cohui.top" > 3s自动跳转指定网页
- title标签
- <link /> 搞图标,欠
- <style />欠
- <script> 一般写在body内部最下方
7、body标签(大小写不区分)
- 图标,特殊符号类: (空格) > (>) <(<)
<link rel="shortcut icon" href="favicon.ico">
- p标签,段落
- br,换行,推荐加上 /
- <hr /> 分割线
======== 小总结 =====
所有标签分为:
块级标签: div(白板),H系列(加大加粗,h1最大,h6最小),p标签(段落和段落之间有间距)
行内标签(内联标签): span(白板,什么属性都没,通过css随身变) input/label
标签之间可以嵌套
标签存在的意义,css操作,js操作
ps:chorme审查元素的使用
- 定位
- 查看样式
- h系列
- div
- span
- i 用法及特性同span,不同的是:斜体字
- input系列 + form标签
input type='text' - name属性,value="uson"
input type='password' - name属性,value="uson"
input type='submit' - value='提交' 提交按钮,表单
input type='button' - value='登录' 普通按钮,什么用都没有,js会赋予功能;
input type='radio' - 单选框 value,checked="checked",name属性(name相同则互斥)
input type='checkbox' - 复选框 value, checked="checked",name属性(批量获取数据)
input type='file' - 依赖form表单的一个属性 enctype="multipart/form-data"
input type='rest' - 重置
<textarea >默认值</textarea> - name属性 长文本输入
select标签 - name,内部option value,提交到后台,size(默认显示数量),multiple(多选)
- 默认值,selected="selected" checked="checked"
form提交方式:get:将数据提交到url;post:将数据提交到body, 两者与安全性无关
form表单提交示例:
<body>
<!--以下2种方式一样-->
<!--<form action="http://localhost:8888/index" method="get">-->
<form action="http://localhost:8888/index"> <!--web框架-app.py-->
<!--不写,默认是get请求-->
<!--get:将数据提交到url-->
<!--post:将数据提交到body, 两者与安全性无关-->
<input type="text" name="user" />
<input type="text" name="email" />
<input type="password" name="pwd" />
<input type="button" value="登录1" />
<!--button默认什么功能都没有-->
<input type="submit" value="登录2" />
</form>
</body>

1 #!/usr/bin/env python
2 # -*- coding:utf-8 -*-
3 # Author:Uson
4
5 import tornado.ioloop
6 import tornado.web
7
8 class MainHandler(tornado.web.RequestHandler):
9 # def get(self, *args, **kwargs):#写上参数,均不报错
10 def get(self):#*args, **kwargs 参数不写,使用物理地址,匹配不上就会报错,匹配上也不报错
11 # action=192.168.1.3
12 # input匹配不上,socket就会断开,且只报第一次错,后来刷新就不错报,localhost始终不报错
13 # WARNING:tornado.access:404 GET /favicon.ico (192.168.1.3) 1.00ms与favicon.ico无关
14 # 注释掉else部分代码,第一次也不报错了
15
16 u = self.get_argument("user")
17 e = self.get_argument("email")
18 p = self.get_argument("pwd")
19 print("uep", u, e, p)
20 if u == "uson" and e == "cohui@cohui.top" and p == "akaedu":
21 self.write("OK")
22 else:
23 self.write("False")
24 def post(self, *args, **kwargs):
25 u = self.get_argument("user")
26 e = self.get_argument("email")
27 p = self.get_argument("pwd")
28 print("uep", u, e, p)
29 if u == "uson" and e == "cohui@cohui.top" and p == "akaedu":
30 self.write("OK")
31 else:
32 self.write("False")
33
34 application = tornado.web.Application([
35 (r"/index", MainHandler), #收到的链接以index结尾的
36 ])
37
38 if __name__ == "__main__":
39 application.listen(8888)
40 tornado.ioloop.IOLoop.instance().start()

<!DOCTYPE html>
<html lang="en">
<head>
<link rel="shortcut icon" href="favicon.ico">
<meta charset="UTF-8">
<title>表单</title>
</head>
<body>
<form enctype="multipart/form-data">
<div>
用户名:<input type="text" name="user" />
<p>性别Gender:</p>
男:<input type="radio" name="gender" value="1" checked="checked"/>
女:<input type="radio" name="gender" value="2"/>
<p>爱好Hobby:</p>
太极:<input type="checkbox" name="intrest" value="1" checked="checked"/>
羽毛球:<input type="checkbox" name="intrest" value="2"/>
跑步:<input type="checkbox" name="intrest" value="3"/>
看电视:<input type="checkbox" name="intrest" value="4"/>
听音乐:<input type="checkbox" name="intrest" value="5"/>
<p>技能Skill:</p>
Python前端开发:<input type="checkbox" name="skill" value="1" checked="checked"/>
Python爬虫分析:<input type="checkbox" name="skill" value="2"/>
<p>上传文件Put file:</p>
<input type="file" name="fname"/>
<!--上传文件有依赖性, 依赖form表单的enctype属性-->
</div>
<input type="submit" value="提交" />
<input type="reset" value="重置" />
<!--<input/> 不用输入>符号,直接输入/即可自动补全-->
</form>
</body>
</html>

1 <body> 2 <form> 3 <div> 4 <p>2019-04开始:</p> 5 <textarea>uson学Python</textarea> 6 <p>下拉框单选:</p> 7 <select name="city"> 8 <option value="1">上海</option> 9 <option value="2">北京</option> 10 <option value="3">南京</option> 11 <option value="4">合肥</option> 12 <option value="5">广州</option> 13 </select> 14 <p>下拉框单选,默认显示3个:</p> 15 <select name="city" size="3"> 16 <option value="1">上海</option> 17 <option value="2">北京</option> 18 <option value="3">南京</option> 19 <option value="4">合肥</option> 20 <option value="5">广州</option> 21 </select> 22 <p>下拉框单选,默认值:</p> 23 <select name="city"> 24 <option value="1">上海</option> 25 <option value="2">北京</option> 26 <option value="3">南京</option> 27 <option value="4" selected="selected">合肥</option> 28 <option value="5">广州</option> 29 </select> 30 <p>下拉框多选(按住Ctrl键):</p> 31 <select name="city" multiple="multiple"> 32 <!--multiple,不写size,默认显示4个--> 33 <option value="1">上海</option> 34 <option value="2">北京</option> 35 <option value="3">南京</option> 36 <option value="4">合肥</option> 37 <option value="5">广州</option> 38 </select> 39 <p>下拉框多选(按住Ctrl键),默认值显示2个:</p> 40 <select name="city" multiple="multiple" size="2"> 41 <option value="1">上海</option> 42 <option value="2">北京</option> 43 <option value="3">南京</option> 44 <option value="4">合肥</option> 45 <option value="5">广州</option> 46 </select> 47 <p>下拉框多选(按住Ctrl键),默认值显示4个,1个默认值:</p> 48 <select name="city" multiple="multiple"> 49 <option value="1">上海</option> 50 <option value="2">北京</option> 51 <option value="3">南京</option> 52 <option value="4">合肥</option> 53 <option value="5" selected="selected">广州</option> 54 </select> 55 </div> 56 <p>信息提交:</p> 57 <input type="submit" value="提交" /> 58 <input type="reset" value="重置" /> 59 </form> 60 </body>

1 <form action="https://www.sogou.com/web"> 2 <input type="text" name="query" value="uson"/> 3 <input type="submit" value="搜索" /> 4 </form>


- a标签
- 跳转 target="_blank" 新标签页跳转
- 锚 href='#某个标签的ID' 标签的ID不允许重复
<div>
<p>
<a href="http://www.cohui.top">智汇部落资源站</a>
</p>
<p>
<a href="#i1">第一章节</a>
<a href="#i2">第二章节</a>
<a href="#i3">第三章节</a>
<a href="#i4">第四章节</a>
</p>
<div>
<div id="i1" style="height: 600px">第一章节内容</div>
<div id="i2" style="height: 600px">第二章节内容</div>
<div id="i3" style="height: 600px">第三章节内容</div>
<div id="i4" style="height: 600px">第四章节内容</div>
</div>
</div>
- img
src
alt
title
- 列表
ul 无序
li
ol 有序
li
dl
dt
dd
<a href="http://www.cohui.top">
<img src="12.jpg" style="height: 200px; width: 200px
</a>
<ul>
<li>uson学Python</li>
<li>uson学Python</li>
<li>uson学Python</li>
<li>uson学Python</li>
</ul>
<!--下面用的比较少,后面都会用css达到我们想要的效果-->
<ol>
<li>uson学Python</li>
<li>uson学Python</li>
<li>uson学Python</li>
<li>uson学Python</li>
</ol>
<dl>
<dt>Python</dt>
<dd>uson学Python</dd>
<dd>uson学Python</dd>
<dd>uson学Python</dd>
<dd>uson学Python</dd>
<dt>Linux</dt>
<dd>uson学Linux</dd>
<dd>uson学Linux</dd>
<dd>uson学Linux</dd>
<dd>uson学Linux</dd>
</dl>

- 表格
table
thead
tr
th
tbody
tr
td
colspan = ''
rowspan = ''
<!DOCTYPE html>
<html lang="en">
<!--合并(2,1)(3,1)-->
<!--合并(2,2)(2,3)-->
<head>
<meta charset="UTF-8">
<title>Title</title>
</head>
<body>
<table border="1">
<thead> <!--表头-->
<tr> <!--行-->
<th>学员姓名</th> <!--成员-->
<th>学习课程</th>
<th>学习成绩</th>
<th>更多详情</th>
</tr>
</thead>
<tbody>
<tr>
<td>Uson</td>
<td>Python</td>
<td>99</td>
<td>
<a href="http://www.cohui.top">月薪12000</a>
</td>
</tr>
<tr>
<td rowspan="2">Cohui</td> <!--上下合并:合并行-->
<!--<td>Linux</td>-->
<td colspan="2">99</td> <!--左右合并:合并列-->
<td>
<a href="http://www.cohui.top">月薪12000</a>
</td>
</tr>
<tr>
<!--<td>Jian</td>-->
<td>Linux</td>
<td>89</td>
<td>
<a href="http://www.cohui.top">月薪10000</a>
</td>
</tr>
</tbody>
</table>
</body>
</html>
- label
用于点击文件,使得关联的标签,获取光标
<label for="username">用户名:</label> <input id="username" type="text" name="user" />
- fieldset
legend
<fieldset>
<legend>登录网站</legend>
<label for="username">用户名:</label>
<input id="username" type="text" name="user" />
<br />
<label for="pwd">密 码:</label>
<input id="pwd" type="password" name="pwd" />
</fieldset>

具体能触发submit事件的行为:
<input type="submit">
<input type="image">
<button type="submit">
当某些表单元素获取焦点时,敲击Enter(回车键)
上述这些操作下,都可以截获submit事件。
