一、HTML的介绍 二、HTML文档结构 三、HTML经常使用标签
web实际上就是一个socket服务端, 流程: 浏览器发请求 --> HTTP协议 --> 服务端接收请求 --> 服务端返回响应 --> 服务端把HTML文件内容发给浏览器 --> 浏览器渲染页面
服务端css
1.超文本标记语言(Hypertext Markup Language, HTML)是一种用于建立网页的标记语言。 2.本质上是浏览器可识别的规则,咱们按照规则写网页,浏览器根据规则渲染咱们的网页。 对于不一样的浏览器,对同一个标签可能会有不一样的解释。(兼容性问题) 3.网页文件的扩展名:.html或.htm
HTML是一种标记语言(markup language),它不是一种编程语言。 HTML使用标签来描述网页。 不像python编程语言同样,有逻辑什么的,这个标记语言是没有逻辑的
1.<!DOCTYPE html>声明为HTML5文档。 二、<html></html>是文档的开始标记和结束的标记。 是HTML页面的根元素,在它们之间是文档的头部(head)和主体(body)。 3.<head>、</head>定义了HTML文档的开头部分。 它们之间的内容不会在浏览器的文档窗口显示。 包含了文档的元(meta)数据,配置信息等,是给浏览器看的,你看到的是在body标签里面写的。 4.<title>、</title>定义了网页标题,在浏览器标题栏显示。 (修改一下title中的内容,而后看一下浏览器,你就会发现title是什么了,就是浏览器上面的小标题) 5.<body>、</body>之间的文本是可见的网页主体内容。
注意:对于中文网页须要使用 声明编码,不然会出现乱码。
有些浏览器会设置 GBK 为默认编码,则你须要设置为 。html
pycharm中建立一个html文件,你就会发现,整个结构都给你直接生成好了,
由于无论什么浏览器,这个文档结构都是这样的。
pycharm能够直接点击浏览器,打开写好的HTML文件,
你会发现地址栏是种file:///这也是一个协议,浏览器打开本身本地文件的协议。python
HTML标签一般是成对出现的,好比:<div>和</div>,第一个标签是开始,第二个标签是结束。结束标签会有斜线。 HTML标签是由尖括号包围的关键字如:<div>、<html>等, 也有一部分标签是单独呈现的,好比:<br/>、<hr/>、<img src="1.jpg" />等。 标签里面能够有若干属性,也能够不带属性。
第一种写法:(成对出现的) <标签名 属性1=“属性值1” 属性2=“属性值2”……>内容部分</标签名> 第二种写法:(单独呈现的) <标签名 属性1=“属性值1” 属性2=“属性值2”…… /> 有些属性是没有特殊的效果的,而有些属性是有效果的, 好比 <h1 s='name'>xxx<h1/>,其中s='name'是没什么效果的, 而<a src='http://www.baidu.com'>xxx</a>,你会看到一些效果,能够点击,有下划线,有颜色。
一、id 定义标签的惟一ID,HTML文档树中惟一,id不能重复 写在标签里面,不是被标签包围,<span id="1"></span> 用来区分页面上的标签,咱们就能够经过id来快速查找到这个标签 二、class 为html元素定义一个类名(class="类名"),<div class="c1"></div> 或者多个类名(class="类名1 类名2 ···") (CSS样式类名) 详见下一篇css 三、style 成对的被<head>M</head>,夹住 规定元素的行内样式(css样式) 如何注释: <!--注释内容--> #找到一行内容ctrl+/就能注释,注释的内容不会在网页上显示出来
<!DOCTYPE> 声明必须是 HTML 文档的第一行,位于 <html> 标签以前。 <!DOCTYPE> 声明不是 HTML 标签; 它是指示 web 浏览器关于页面使用哪一个 HTML 版本进行编写的指令。
Meta标签介绍: #做为了解内容 <meta>元素可提供有关页面的元信息(meta-information),针对搜索引擎和更新频度的描述和关键词。 <meta>标签位于文档的头部,不包含任何内容。 <meta>提供的信息是用户不可见的。
分别是http-equiv属性 和name 属性 不一样的属性又有不一样的参数值,这些不一样的参数值就实现了不一样的网页功能。
至关于http的文件头做用,它能够向浏览器传回一些有用的信息,以帮助正确地显示网页内容, 与之对应的属性值为content,content中的内容其实就是各个参数的变量值。
主要用于描述网页,与之对应的属性值为content, content中的内容主要是便于搜索引擎机器人查找信息和分类信息用的。
下面这个红框里面就是描述信息:web
「浏览器内核」也就是浏览器所采用的「渲染引擎」, 渲染引擎决定了浏览器如何显示网页的内容以及页面的格式信息。 渲染引擎是兼容性问题出现的根本缘由。
基本标签django
(还有好多其余的,能够直接百度搜HTML特殊符号对照表)
这两个标签没有特别的样式,能够随意的经过css来设计样式; div标签用来定义一个块级元素,并没有实际的意义。主要经过CSS样式为其赋予不一样的表现。 span标签用来定义内联(行内)元素,并没有实际的意义。主要经过CSS样式为其赋予不一样的表现。
所谓块元素,是以另起一行开始渲染的元素,行内元素则不需另起一行。 若是单独在网页中插入这两个元素,不会对页面产生任何的影响。 这两个元素是专门为定义CSS样式而生的。 刚才学的标签: 块级标签:p、h1--h六、hr、div 内联标签:b、i、u、s
关于标签嵌套:一般块级元素能够包含内联元素或某些块级元素, 但内联元素不能包含块级元素,它只能包含其它内联元素。 div是能够包含div的 p标签比较特殊,不能包含块级标签,p标签也不能包含p标签。 能够试一下p标签套p标签,f12你会发现三个p标签
<img src="图片的路径" alt="图片未加载成功时的提示" title="鼠标悬浮时提示信息" width="宽" height="高(宽高两个属性只用一个会自动等比缩放)"> src的路径又分为两种:网上的一个图片路径和本地的一个图片路径
所谓的超连接是指从一个网页指向一个目标的链接关系,这个目标能够是另外一个网页, 也能够是相同网页上的不一样位置,还能够是一个图片,一个电子邮件地址, 一个文件,甚至是一个应用程序。
什么是URL编程
href属性指定目标网页地址。 一、绝对URL - 指向另外一个站点(好比 href="http://www.jd.com) 二、相对URL - 指当前站点中确切的路径(href="index.htm") #学django的时候会用的比较多 三、锚URL - 指向页面中的锚(href="#top"),博客的目录常常用到,(回到顶部) 还能够跳转到 name属性为p1的a标签上,<a name='top'>xxx</a> 四、_blank表示在新标签页中打开目标网页 五、_self表示在当前标签页中打开目标网页
disc(实心圆点,默认值) circle(空心圆圈) square(实心方块) none(无样式)
1 数字列表,默认值 A 大写字母 a 小写字母 Ⅰ大写罗马 ⅰ小写罗马
表格是一个二维数据空间,一个表格由若干行组成,一个行又有若干单元格组成, 单元格里能够包含文字、列表、图案、表单、数字符号、预置文本和其它的表格等内容。 表格最重要的目的是显示表格类数据。 表格类数据是指最适合组织为表格格式(即按行和列组织)的数据。
表格的基本结构:后端
border: 表格边框. cellpadding: 内边距 (内边框和内容的距离) cellspacing: 外边距.(内外边框的距离) width: 像素 百分比.(最好经过css来设置长宽) rowspan: 单元格竖跨多少行 colspan: 单元格横跨多少列(即合并单元格)
其实标签又能够分为两类:一、展现给用户看的 二、获取用户输入内容的标签,
下面要学的标签是捕获用户输入的标签。基本上HTML中经常使用的就这些标签浏览器
功能: 表单用于向服务器传输数据,从而实现用户与Web服务器的交互 表单可以包含input系列标签,好比文本字段、复选框、单选框、提交按钮等等。 表单还能够包含textarea、select、fieldset和 label标签。
属性 描述 accept-charset 规定在被提交表单中使用的字符集(默认:页面字符集)。 action 规定向何处提交表单的地址(URL)(提交页面)。 autocomplete 规定浏览器应该自动完成表单(默认:开启)。 enctype 规定被提交数据的编码(默认:url-encoded)。 method 规定在提交表单时所用的 HTTP 方法(默认:GET)。 name 规定识别表单的名称(对于 DOM 使用:document.forms.name)。 novalidate 规定浏览器不验证表单。 target 规定 action 属性中地址的目标(默认:_self)。
HTML表单是HTML元素中较为复杂的部分, 表单每每和脚本、动态页面、数据处理等功能相结合,所以它是制做动态网站很重要的内容。 访问者在浏览有表单的网页时,可填写必需的信息,而后按某个按钮提交。 这些信息经过Internet传送到服务器上。 服务器上专门的程序对这些数据进行处理,若是有错误会返回错误信息,并要求纠正错误。 当数据完整无误后,服务器反馈一个输入完成的信息。
点击提交按钮,input中type=submit的那个按钮,而后就会将form表单中全部用户输入的内容或者选择的内容({name属性:值,}) 都发给服务端(以咱们本身写的那个socket举例,打印一下接收的内容), 可是全部的输入标签必须有一个叫作name的属性。
要否则后端接收不到内容,用户本身填写的标签,不须要指定value值
可是这样并很差,由于url中显示了你的信息,而且若是内容不少的话, 你的地址栏不可以输入那么长的内容,为何会默认拼接到url里面呢, 由于form表单默认是get请求提交内容,咱们能够改成post, 来看看:post会把全部你提交的信息封装到一个消息体里面, 在浏览器上就看不到了, 对于小白来讲,看着安全一些。 而后咱们后端经过提交过来的数据, 来作某些事情,该验证的验证,该保存的保存
action控制往哪里提交数据、 method控制用什么方式提交。
由于咱们刚才说,数据是经过组成一个字典发给后端的, 可是文件怎么作键值对啊,作不了, 因此须要经过二进制流的形式一点一点的传送给后端,就是这个multipart搞的事情, 有个了解就好了,别纠结,到了django咱们在细说。
form表单提交数据的时候,必须有个submit按钮
django的示例安全
<input> 元素会根据不一样的 type 属性,变化为多种形态。
name: 表单提交时的“键”,注意和id的区别 value: 表单提交时对应项的值 type="button", "reset", "submit"时,为按钮上显示的文本年内容 type="text","password","hidden"时,为输入框的初始值 type="checkbox", "radio", "file",为输入相关联的值 checked: radio和checkbox默认被选中的项 readonly: text和password设置只读 disabled: 全部input均适用
multiple:布尔属性,设置后为多选下拉框,不然默认单选 disabled:禁用 selected:默认选中该项 value:定义提交时的选项值
定义:<label> 标签为 input 元素定义标注(标记)。 若是不用这个label给input标签一个标记,input会变黄,不影响使用, 只是提示你,别忘了给用户一些提示,也就是这个label标签。 说明: 一、label 元素不会向用户呈现任何特殊效果。 可是点击label标签里面的文本,那么和他关联的input标签就得到了光标,让你输入内容 二、<label> 标签的 for 属性值应当与相关元素的 id 属性值相同。
name:名称 rows:行数 #至关于文本框高度设置 cols:列数 #至关于文本框长度设置 disabled:禁用