【1010 | Day 41】前端之HTML
目录
HTML简介
1.1 web本质
- 浏览器发请求
- HTTP协议(服务端在发送数据之前,需要先发送报头)
- 服务端接收请求
- 服务端返回响应
- 服务端把HTML文件内容发给浏览器
- 浏览器渲染页面
import socket
s = socket.socket()
s.bind(('127.0.0.1', 8080))
s.listen(5)
while True:
print('服务端已启动...')
conn, addr = s.accept()
data = conn.recv(1024)
conn.send(b"HTTP/1.1. 200 ok\r\n\r\n")
conn.send(b"Hello World :)")
conn.close()
1.2 HTML本质
-
超文本标记语言(Hypertext Markup Language, HTML):一种用于创建网页的标记语言。
-
本质:是浏览器可识别的规则,我们按照规则写网页,浏览器根据规则渲染我们的网页。对于不同的浏览器,对同一个标签可能会有不同的解释。(兼容性问题)
-
网页文件的扩展名:
.html
或.htm
(在古老的计算机时代,不能用html四位的扩展名 : /)
1.3 HTML误区
-
HTML是一种标记语言(markup language),它不是一种编程语言。
-
HTML使用标签来描述网页。
1.4 HTML文档结构
最基本的HTML文档:
<!DOCTYPE html>
<html lang="zh-CN">
<head>
<meta charset="UTF-8">
<title>css样式优先级</title>
</head>
<body>
</body>
</html>
-
<!DOCTYPE html>
声明为HTML5文档。<!DOCTYPE>
声明必须是 HTML 文档的第一行,位于 标签之前。<!DOCTYPE>
声明不是 HTML 标签;它是指示 web 浏览器关于页面使用哪个 HTML 版本进行编写的指令。
-
<html>
、</html>
是文档的开始标记和结束的标记。是HTML页面的根元素,在它们之间是文档的头部(head)和主体(body)。 -
<head>
、</head>
定义了HTML文档的开头部分。它们之间的内容不会在浏览器的文档窗口显示,包含了文档的元(meta)数据。 -
<title>
、</title>
定义了网页标题,在浏览器标题栏显示。 -
<body>
、</body>
之间的文本是可见的网页主体内容,放在或外的文本内容也会默认放入中。<!DOCTYPE html> <html lang="en"> <head> <meta charset="UTF-8"> <title>sdhasd</title> <style> </style> <link rel="stylesheet" href="01.css"/> <meta name="keywords" content="meta总结,html meta,meta属性,meta跳转"> <meta name="description" content="老男孩教育Python学院"> </head> <body> <div> aa </div> </body> 猜猜我在body的外面会显示吗?<!--会显示--> </html> 猜猜我在body的外面会显示吗?<!--会显示-->
注意:对于中文网页需要使用 声明编码,否则会出现乱码。有些浏览器会设置 GBK 为默认编码,则你需要设置为 。
1.5 HTML标签格式
<body>
>>>标签的书写,
双标签,<head></head>
单标签 <meta charset="UTF-8">
>>>标签里面的语法/属性
<标签名 属性名="属性值"></标签名>
<标签名 属性名="属性值" />
<标签名 id="属性值" class="属性值 属性值 属性值"></标签名>
<标签名 >内容</标签名>
<标签名 属性名="内容"/>
</body>
1.6 HTML注释
<!--注释内容-->
1.7 HTML标签
- 标题标签
- 段落标签
- 链接标签
- 锚点
- id属性/class属性
- 图片标签
<!DOCTYPE html>
<html lang="en">
<head>
<meta charset="UTF-8">
<title>Title</title>
</head>
<body>
<!--行内标签-->
<!--块级标签-->
<!--标题标签-->
<h1 id="h1">我是标题1</h1>
<h2>我是标题2</h2>
<h3>我是标题3</h3>
<h4>我是标题4</h4>
<h5>我是标题5</h5>
<h6>我是标题6</h6>
<h7>我是标题7</h7>
我是标题7
<!--段落标签-->
<p>我是p</p>
<p>我是p</p>
<!--a标签,链接标签, href="链接的地址"
第一种情况:target属性默认是_self,如果是self就会覆盖当前的html,
第二种情况:如果target属性默认是_blank,就会重新打开窗口
-->
<a href="02.html" target="_blank">首页</a>
<a href="02.html" target="_self">首页</a>
<!--锚点-->
<a href="#h1">首页</a>
<!--id属性,
id="属性值",如果是id属性,属性值必须全页面唯一
class属性
class属性可以全局不唯一
<a class="a b c k"></a>
-->
<!--img 图片标签
src="图片的地址"
alt="当图片不能加载的时候,就会显示,还有给搜索引擎提示我们图片的内容"
title="当我们的鼠标悬浮在图片上的时候,就会显示"-->
<img src="http://s9.rr.itc.cn/r/wapChange/20174_1_21/a7o3k08442035758542.jpg" alt="">
<img src="1.jpg" alt="">
<img src="2.jpg" alt="dasdasd">
<img src="1.jpg" title="这是你们的老婆">
</body>
</html>
- 无序列表标签
- 有序列表标签
- 标题列表
- 表格标签
<!DOCTYPE html>
<html lang="en">
<head>
<meta charset="UTF-8">
<title>Title</title>
</head>
<body>
<!--无序列表标签
disc(实心圆点,默认值)
circle(空心圆圈)
square(实心方块)
none(无样式)
-->
<ul class="a" type="circle">
<li>1</li>
<li>2</li>
<li>3</li>
</ul>
<!--有序列表标签
type属性:
1 数字列表,默认值
A 大写字母
a 小写字母
Ⅰ大写罗马
ⅰ小写罗马
-->
<ol type="A" start="2">
<li>1</li>
<li>2</li>
<li>3</li>
</ol>
<!--标题列表-->
<!--标题1-->
<!--nie-->
<!--nei-->
<!--挑剔-->
<!--nier-->
<!--strs="23456789abcdefghik"-->
<!--5-->
<!--标题列表-->
<dl>
<dt>标题1</dt>
<dd>内容1</dd>
<dt>标题2</dt>
<dd>内容1</dd>
<dd>内容2</dd>
</dl>
<!--表格标签
border: 表格边框.
cellpadding: 内边距
cellspacing: 外边距.
width: 像素 百分比.(最好通过css来设置长宽)
rowspan: 单元格竖跨多少行
colspan: 单元格横跨多少列(即合并单元格)
-->
<table border="1" cellpadding="20" cellspacing="20" >
<thead>
<tr>
<th>name</th>
<th>age</th>
<th>sex</th>
</tr>
</thead>
<tbody>
<tr>
<td rowspan="3">egon</td>
<td>39</td>
<td>男</td>
</tr>
<tr>
<td colspan="2">egon</td>
<td>39</td>
<td>男</td>
</tr>
<tr>
<td>egon</td>
<td>39</td>
<td>男</td>
</tr>
</tbody>
</table>
</body>
</html>
1.8 特殊字符
内容 | 对应代码 |
---|---|
空格 |   |
> | > |
< | < |
& | & |
¥ | ¥ |
版权 | © |
注册 | ® |
<!DOCTYPE html>
<html lang="en">
<head>
<meta charset="UTF-8">
<title>Title</title>
</head>
<body>
普通文本
<br>
<b>加粗</b>
<br>
<i>斜体</i>
<br>
<u>下划线</u>
<br>
<s>删除</s>
<!--换行-->
<a href="">a</a>
<br>
<a href="">a</a>
<br>
<a href="">a</a>
<!--水平线-->
<hr>
<div>我是块级</div>
<span>我是行内</span>
<span>我是行内</span>
<!--html中特殊符号-->
<span>我是 行内</span>
<!--空格 -->
<!--> >-->
<!--< <-->
<!--& &-->
<!--¥ ¥-->
<!--版权 ©-->
<!--注册 ®-->
<!--<script>-->
<!--alert("123")-->
<!--</script>-->
<hr>
<hr>
<hr>
<hr>
<hr>
1<span>
¥
版权 ©
注册 ®
</body>
</html>
注意:<br>
表示换行、<hr>
表示水平线。
1.9 div标签和span标签
- div标签用来定义一个块级元素,并无实际的意义。主要通过CSS样式为其赋予不同的表现。
- span标签用来定义内联(行内)元素,并无实际的意义。主要通过CSS样式为其赋予不同的表现。
2.0 块级元素vs行内元素
- 所谓块元素,是以另起一行开始渲染的元素,行内元素则不需另起一行。如果单独在网页中插入这两个元素,不会对页面产生任何的影响。
这两个元素是专门为定义CSS样式而生的。