HTML

web原理

最开始时各种各样的软件安装在电脑上,但是每个电脑都有各种各样的版本,如windows,linux,mac,如果一个公司要开展业务的话,每个操作系统版本都要写一个客户端,开发成本很高,如果要开发新版本,所有客户端都要更新一下,这就是CS。后来慢慢发展为BS架构,浏览器加服务端。但是少部分复杂的程序如qq等还是用CS架构。
BS架构只要写个server端就行了,只要安装了浏览器就能打开公司业务,而且server端更新了,浏览器里面内容也更新了。BS架构十分适合更新迭代快的互联网时代。
如,设置我的服务端

import socket
sk = socket.socket()
sk.bind(('127.0.0.1', 8080))
sk.listen()
while 1:  # 一直接收消息,浏览器这个客户端可以发消息
    conn, addr = sk.accept()
    data = conn.recv(9000)
    print(data)
    # 按照HTTP协议的格式给浏览器回复消息
    conn.send(b'HTTP/1.1 200 OK\r\ncontent-type: text/html; charset=utf-8\r\n\r\n')
    with open('s1', 'rb') as f:
        msg = f.read()
    conn.send(msg)
    conn.close()
b'GET / HTTP/1.1
Host: 127.0.0.1:8080    # 浏览器上输入的内容,访问的地址
Connection: keep-alive
Cache-Control: max-age=0
# 以下是浏览器给我包装的一些消息,由于世界上有很多版本浏览器,网站也五花八门,如果浏览器和网站之间的通信格式不统一,就乱了, http协议是世界上所有浏览器遵循的协议。
Upgrade-Insecure-Requests: 1\r\nUser-Agent: Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/68.0.3440.75 Safari/537.36\r\nAccept: text/html,application/xhtml+xml,application/xml;q=0.9,image/webp,image/apng,*/*;q=0.8\r\nAccept-Encoding: gzip, deflate, br\r\nAccept-Language: zh-CN,zh;q=0.9\r\n\r\n'
b'GET / HTTP/1.1\r\nHost: 127.0.0.1:8080\r\nConnection: keep-alive\r\nCache-Control: max-age=0\r\nUpgrade-Insecure-Requests: 1\r\nUser-Agent: Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/68.0.3440.75 Safari/537.36\r\nAccept: text/html,application/xhtml+xml,application/xml;q=0.9,image/webp,image/apng,*/*;q=0.8\r\nAccept-Encoding: gzip, deflate, br\r\nAccept-Language: zh-CN,zh;q=0.9\r\n\r\n'

web的原理
浏览器地址栏输入URL
----> 浏览器作为一个客户端往服务端发消息(浏览器打包的消息)
-----> 服务端接收消息(回的消息是服务端写好的消息,打开文件,读取文件内容,通过socket回复)
-----> 浏览器收到消息(按照一个约定好的规则展示出来,如用img包起来就展示图片等) # 前端html,css,js

HTML是什么

  • 超文本标记语言(Hypertext Markup Language,HTML)是一种创建网页的标记语言。
  • 浏览器可识别的规则,
  • 网页文件的扩展名:.html 或 。htm

HTML不是什么

  • 不是编程语言
  • 使用标签来描述网页

HTML文档结构

<!DOCTYPE html>  声明为html5文档,注释:ctrl + /
<html lang="zh-CN">   是文档的开始标记和结束的标记。是HTML页面的根元素,在它们之间是文档的头部(head)和主体(body)。
<head>                      # 定义了HTML文档的开头部分。它们之间的内容不会在浏览器的文档窗口显示。包含了文档的元(meta)数据。
    <meta charset="UTF-8">   # 浏览器用该编码解析文件
    <title>南山</title>   # 定义了网页标题,在浏览器标题栏显示。
</head>
<body>                          # 之间的文本是可见的网页主体内容。
     <h1 s1 = 'hao'>浏览器</h1>   #h1 + tab, 尖括号内是属性。
</body>

html注释

在pycharm中的快捷键
ctrl + /

标签

head内常用标签

在pycharm中的快捷键 ,如输入h1标签时:
h1 + tab

标签意义
<title></title>定义网页标题
<style></style>定义内部样式表
<script></script>定义JS代码或引入外部JS文件
<link/>引入外部样式表文件
<meta/>定义网页原信息

body内常用标签

基本标签
<b>加粗</b>
<i>斜体</i>   # italic 意大利的,斜体
<u>下划线</u>
<s>删除</s>

<p>段落标签</p>

<h1>标题1</h1>
<h2>标题2</h2>
<h3>标题3</h3>
<h4>标题4</h4>
<h5>标题5</h5>
<h6>标题6</h6>

<!--换行-->
<br>

<!--水平线--><hr>

<!DOCTYPE html>
<html lang="zh-CN">
<head>
    <meta charset="UTF-8">
    <title>Title</title>
</head>
<body>
    呵      呵
    <b>采菊东篱下,悠然见南山</b>
    <i>采菊东篱下,悠然见南山</i>
    <u>采菊东篱下,悠然见南山</u>
    <s>采菊东篱下,悠然见南山</s>
    <p>采菊东篱下,悠然见南山</p>
    <h1>采菊东篱下,悠然见南山</h1>
    <h2>采菊东篱下,悠然见南山</h2>
    <h3>采菊东篱下,悠然见南山</h3>


</body>
</html>

在这里插入图片描述

特殊字符
内容对应代码
空格&nbsp;
>&gt;
<&lt;
&&amp;
¥&yen;
版权&copy;
注册&reg;
horizontal rule 分隔线,水平线hr
div 和span标签
  • div标签用来定义一个块级元素,并无实际的意义。主要通过CSS样式为其赋予不同的表现。

    divide缩写:分隔,分区域的意思

  • span标签用来定义内联(行内)元素,默认在同一行显示,宽度是由内容决定的并无实际的意义。主要通过CSS样式为其赋予不同的表现。
    span主要针对文档

    块级元素与行内元素的区别:

    所谓块元素,自己独占一行,是以另起一行开始渲染的元素,行内元素则不需另起一行。如果单独在网页中插入这两个元素,不会对页面产生任何的影响。

这两个元素是专门为定义CSS样式而生的。

注意:

关于标签嵌套:通常块级元素可以包含内联元素或某些块级元素,但内联元素不能包含块级元素,它只能包含其它内联元素。

p标签不能包含块级标签,p标签也不能包含p标签。

img标签
<!DOCTYPE html>
<html lang="zh-CN">
<head>
    <meta charset="UTF-8">
    <title>Title</title>
</head>
<body>
<img src="pic.png" alt="此处是前男友照片" title="彭于晏" width="100">
<!--在当前网页打开链接-->
<a href="http://www.jd.com">此处是浏览器显示的内容</a>
<!--在新网页打开链接-->
<a href="https://www.jd.com" target="_blank">此处是浏览器显示的内容</a>
<a href="#p1">点我</a>

<div style="..."></div>
<p id="p1">采菊东篱下,悠然见南山</p>
<div style="..."></div>

</body>
</html>

网页显示结果
在这里插入图片描述

a标签

超链接标签

所谓的超链接是指从一个网页指向一个目标的连接关系,这个目标可以是另一个网页,也可以是相同网页上的不同位置,还可以是一个图片,一个电子邮件地址,一个文件,甚至是一个应用程序。
href属性指定目标网页地址。该地址可以有几种类型:

绝对URL - 指向另一个站点(比如 href=“http://www.jd.com
相对URL - 指当前站点中确切的路径(href=“index.htm”)
锚URL - 指向页面中的锚(href=”#top")

target:

_blank表示在新标签页中打开目标网页
_self表示在当前标签页中打开目标网页

列表
  1. 无序列表
    ul: unordered list 无序的列表
    li:list的缩写

type属性:

  • disc(实心圆点,默认值)
  • circle(空心圆圈)
  • square(实心方块)
  • none(无样式)
  1. 有序列表
    ol:ordered list 有序的列表

type属性:

  • 1 数字列表,默认值
  • A 大写字母
  • a 小写字母
  • Ⅰ大写罗马
  • ⅰ小写罗马
<!DOCTYPE html>
<html lang="zh-CN">
<head>
    <meta charset="UTF-8">
    <title>Title</title>
</head>
<body>
<ul type="none">
    <li>第一项</li>
    <li>第二项</li>
    <li>第三项</li>
</ul>
<!--有序列表-->
<ol type="a" start="27">
    <li>第一项</li>
    <li>第二项</li>
    <li>第三项</li>
</ol>
<dl>
    <dt>标题1</dt>
    <dd>内容1</dd>
    <dd>内容2</dd>
    <dt>标题2</dt>
    <dd>内容1</dd>
    <dd>内容2</dd>
</dl>

</body>
</html>

网页显示结果
在这里插入图片描述
在这里插入图片描述

表格

属性:

border: 表格边框.
cellpadding: 内边距
cellspacing: 外边距.
width: 像素 百分比.(最好通过css来设置长宽)
rowspan: 单元格竖跨多少行
colspan: 单元格横跨多少列(即合并单元格)

<!DOCTYPE html>
<html lang="zh-CN">
<head>
    <meta charset="UTF-8">
    <title>Title</title>
</head>
<body>
<table border="1" cellpadding="10" cellspacing="5">
    <thead>
        <tr>
            <th>序号</th>
            <th>姓名</th>
            <th>爱好</th>
        </tr>
    </thead>
    <tbody>
        <tr>
            <td>1</td>
            <td colspan="2">laura</td>
        </tr>
        <tr>
            <td>2</td>
            <td>wendy</td>
            <td rowspan="2">喝茶</td>
        </tr>
        <tr>
            <td>3</td>
            <td>iris</td>
        </tr>
    </tbody>
</table>
</body>
</html>

网页显示结果
在这里插入图片描述

在这里插入图片描述

form 用户输入
属性描述
accept-charset规定在被提交表单中使用的字符集(默认:页面字符集)。
action规定向何处提交表单的地址(URL)(提交页面)。
autocomplete规定浏览器应该自动完成表单(默认:开启)。
enctype规定被提交数据的编码(默认:url-encoded)。
method规定在提交表单时所用的 HTTP 方法(默认:GET)。
name规定识别表单的名称(对于 DOM 使用:document.forms.name)。
novalidate规定浏览器不验证表单。
target规定 action 属性中地址的目标(默认:_self)。
input

<input> 元素会根据不同的type属性,变化为多种形态。

type属性值表现形式对应代码表现形式
text单行输入文本<input type=‘text’/>在这里插入图片描述
password密码输入框<input type=“password”>在这里插入图片描述
date日期输入框<input type=“date”>在这里插入图片描述
checkbox复选框
(一般用于多选)
<input type=“checkbox”>在这里插入图片描述
radio单选框
(例如选择性别时)
<input type=“radio”>在这里插入图片描述
submit提交按钮
(按提交按钮刷新一次网页,提交的内容以及提交给服务器了)
<input type=“submit” value=“提交”>()在这里插入图片描述
reset重置按钮<input type=“reset” value=“重置”>在这里插入图片描述
button普通按钮<input type=“button” value=“普通按钮”>在这里插入图片描述
hidden隐藏按钮<input type=“hidden”>浏览器未显示
file文本选择框<input type=“file”>在这里插入图片描述

注意:

  • value: 表单提交时对应项的值
    • type=‘button’, ‘reset’, ‘submit’ 时,为按钮上显示的文本内容
    • type=‘text’,‘password’, 'hidden’时,为输入框的初识值
    • type=‘checkbox’, ‘radio’, ‘file’,为输入相关联的值
  • readonly: text 和password设置只读。。

在这里插入图片描述在这里插入图片描述
input标签中type为number
在这里插入图片描述

select

属性说明:

  • multiple:布尔属性,设置后为多选,否则默认单选
  • disabled :禁用
  • selected:默认选中该项
  • value:定义提交时的选项值
    在这里插入图片描述
textarea

属性说明:

  • name:名称
  • rows:行数
  • cols:列数
  • disabled:禁用
<!DOCTYPE html>
<html lang="zh-CN">
<head>
    <meta charset="UTF-8">
    <title>Title</title>
</head>
<body>

<form action="http://127.0.0.1:8080" method="post" enctype="multipart/form-data">
    <p>
        <label for="i1">用户名:</label>
      <input id="i1" type="text" name="username">
    </p>
    <p>
        <label>密码:
            <input type="password" name="pwd">
        </label>
    </p>
    <p>
        邮箱:
        <input disabled type="email" name="email">
    </p>
    <p>出生日期:
        <input type="date" name="birthday">
    </p>
    <p>
        头像:
        <input type="file" name="avatar">
    </p>
    <p>
        隐藏的输入框:
        <input type="hidden">
    </p>
    <p>性别:
        <input type="radio" name="gender" value="male" checked><input type="radio" name="gender" value="female"></p>
    <p>
        爱好:
        <input type="checkbox" name="hobby" value="basketball">篮球
        <input type="checkbox" name="hobby" value="football">足球
        <input type="checkbox" name="hobby" value="doublecolorball">双色球
    </p>
    <label for="s1">城市</label>
    <select id="s1" name="city1">
        <option value="010">北京</option>
        <option value="021">上海</option>
        <option value="020">广州</option>
        <option value="0755" selected="selected">深圳</option>
    </select>
     <select name="city2" multiple="multiple">
            <option value="010">北京</option>
        <option value="021">上海</option>
        <option value="020">广州</option>
        <option value="0755" selected="selected">深圳</option>
    </select>
    <p>
        个人简介:
        <textarea name="info"  cols="60" rows="40">

        </textarea>
    </p>

    
    <input type="button" value="按钮">
    <input type="submit" value="提交">
    <input type="reset" value="重置">
</form>

{"name属性的值": 用户填写的内容}

</body>
</html>

在这里插入图片描述
在这里插入图片描述
链接:各标签的作用

label标签

<label>标签为input元素定义标注(标记)
说明:

  • label元素不会向用户呈现任何特殊效果。
  • <label>标签的for属性值应当与相关元素的id属性值相同

    在这里插入图片描述

在这里插入图片描述
在这里插入图片描述

button

元素定义可点击的按钮
在这里插入图片描述


  • html模板
    在这里插入图片描述
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值