一、HTML初识
1.什么是HTML?
HTML是英文Hyper Text Mark-up Language(超文本标记语言)的缩写,他是一种制作万维网页面标准语言(标记)。
2、网页的组成
我们平时看到的网页一般由3个部分组成:
- HTML(Hypertext Markup Language)
- CSS(Cascade Style Sheets)
- JavaScript
上面3个分别可以理解为:视图、表现、行为(HTML可以理解为一个动画小人,CSS为它穿上美丽的衣服,JavaScript让它变的可以跳舞)
3、html文档树形结构图:
4、什么是标签
- 是由一对尖括号包裹的单词构成 例如: <html> *所有标签中的单词不可能以数字开头.
- 标签不区分大小写.<html> 和 <HTML>. 推荐使用小写.
- 标签分为两部分: 开始标签<a> 和 结束标签</a>. 两个标签之间的部分 我们叫做标签体.
- 有些标签功能比较简单.使用一个标签即可.这种标签叫做自闭和标签.例如: <br/> <hr/> <input /> <img />
- 标签可以嵌套.但是不能交叉嵌套. <a><b></a></b>
5、标签的属性
- 通常是以键值对形式出现的. 例如 name="alex"
- 属性只能出现在开始标签 或 自闭和标签中.
- 属性名字全部小写. *属性值必须使用双引号或单引号包裹 例如 name="alex"
- 如果属性值和属性名完全一样.直接写属性名即可. 例如 readonly
6、<!DOCTYPE html>标签
由于历史的原因,各个浏览器在对页面的渲染上存在差异,甚至同一浏览器在不同版本中,对页面的渲染也不同。在
W3C标准出台以前,浏览器在对页面的渲染上没有统一规范,产生了差异(Quirks mode或者称为Compatibility
Mode);由于W3C标准的推出,浏览器渲染页面有了统一的标准(CSScompat或称为Strict mode也有叫做Standars
mode),这就是二者最简单的区别。
W3C标准推出以后,浏览器都开始采纳新标准,但存在一个问题就是如何保证旧的网页还能继续浏览,在标准出来以前,
很多页面都是根据旧的渲染方法编写的,如果用的标准来渲染,将导致页面显示异常。为保持浏览器渲染的兼容性,使以
前的页面能够正常浏览,浏览器都保留了旧的渲染方法(如:微软的IE)。这样浏览器渲染上就产生了Quircks mode
和Standars mode,两种渲染方法共存在一个浏览器上。
window.top.document.compatMode: //BackCompat:怪异模式,浏览器使用自己的怪异模式解析渲染页面。 //CSS1Compat:标准模式,浏览器使用W3C的标准解析渲染页面。
<script>
alert(window.top.document.compatMode) 查看当前浏览器渲染模式
</script>
这个属性会被浏览器识别并使用,但是如果你的页面没有DOCTYPE的声明,那么compatMode默认就是BackCompat,
这也就是恶魔的开始 -- 浏览器按照自己的方式解析渲染页面,那么,在不同的浏览器就会显示不同的样式。
如果你的页面添加了<!DOCTYPE html>那么,那么就等同于开启了标准模式,那么浏览器就得老老实实的按照W3C的
标准解析渲染页面,这样一来,你的页面在所有的浏览器里显示的就都是一个样子了。
这就是<!DOCTYPE html>的作用。
7、head标签
<meta>标签
#meta标签的组成:meta标签共有两个属性,它们分别是http-equiv属性和name 属性,不同的属性又有不同的参数值,这些不同的参数值就实现了不同的网页功能。 <meta charset="UTF-8">
1、name属性
主要用于描述网页,与之对应的属性值为content,content中的内容主要是便于搜索引擎机器人查找信息和分类信息用的。
<meta name="keywords" content="老男孩"> <!-- 关键字设定 -->
<meta name="description" content="描述性内容:这是一个测试页面"> <!-- 描述网站或者页面 -->
关键字的作用:一般是让爬虫之类的收录程序,当他们在爬你的网站的时候,如果你有关键字,那么他们会优先把关键字收录到他们的记录中,比如搜狗:如果他们收录之后,他们搜索你的关键字的时候,就能找到咱们的网站。
2、http-equiv属性
顾名思义,相当于http的文件头作用,它可以向浏览器传回一些有用的信息,以帮助正确和精确地显示网页内容,与之对应的属性值为content, content中的内容其实就是各个参数的变量值。
<meta http-equiv="Refresh" content="2;Url=http://www.fuzegame.com"> <!-- 设置关键字,刷新时间和页面跳转 设置页面每2秒刷新一次 Url是指页面刷新2秒后,跳转到指定的Url -->
3.兼容
<meta http-equiv="x-ua-compatible " content="IE=EmulateIE7">
title标签
<title>test</title> <!-- 网页头部标题 -->
stytle标签
一般建议css放在head中不管是引用还是直接在当前页面定义css,因为页面加载自上而下
<style> div { color: rebeccapurple; background-color:cadetblue ; } span { color:green ; background-color: yellow; } #div1{ height:500px; background-color: yellow; } #div2{ height:500px; background-color:green; } #div3{ height:500px; background-color: black; } </style>
link标签
<link rel="icon" href="//www.jd.com/favicon.ico">
8、body标签
body标签存放网页的内容
1.基本标签(块级标签和内联标签)
块级标签:
- 每个块级元素都从新的一行开始,并且其后的元素也另起一行
- 元素的高度、宽度、行高以及顶和底边距都可设置
- 元素宽度在不设置的情况下,是它本身父容器的100%(和父元素的宽度一致),除非设定一个宽度
内联标签:根据实际使用的大小展示
- 和其他元素都在一行上
- 元素的高度、宽度、行高及顶部和底部边距不可设置;
- 元素的宽度就是它包含的文字或图片的宽度,不可改变。
div标签(块级标签)
<div style="color: rebeccapurple;background-color: antiquewhite; 50%;text-align: center;"> hello world </div>
h标签(块级标签)
<h1>h标签是块级标签 字体从大到小表示标题</h1> <h2>2</h2> <h3>3</h3> <h4>4</h4> <h5>5</h5> <h6>6</h6>
p 标签(块级标签)
<p> p标签 换行跟隔行 </p>
span标签(内联标签) span标签width和heigth设置是无效的
<span>span 是内联标签(行级标签 in-line)</span>
img 图形标签
<img src="1.jpg" width="150px" height="60" alt="hehe" title="鼠标放上显示"> src: 要显示图片的路径. alt: 图片没有加载成功时的提示. title: 鼠标悬浮时的提示信息. 图片的宽 height:图片的高 (宽高两个属性只用一个会自动等比缩放.)
<a>超链接标签(锚)
它有两个作用:跳转和锚点[跳转或者设定锚点]
<a href="http://www.fuzegame.com" target="_blank">超链接标签</a> href:要连接的资源路径 格式如下: href="http://www.baidu.com" target: _blank : 在新的窗口打开超链接. 框架名称: 在指定框架中打开连接内容. name: 定义一个页面的书签. 用于跳转 href : #id.(锚)
<a href="#div1">第一章</a>
<a href="#div2">第二章</a>
<a href="#div3">第三章</a>
<div id="div1">第一章</div>
<div id="div2">第二章</div>
<div id="div3">第三章</div>
其他标签
<b>给字体加粗</b> <br/> 换行 <em>变成斜体</em> <strike>划除</strike> <del>delete 跟strike一样效果</del> 2<sub>3下角标</sub> 2<sup>3上角标</sup> 代表空格 © 符号 <大于 >小于
列表标签
1、无序列表:
unordered list 无序列表
<ul>
<li>111</li>
<li>222</li>
<li>333</li>
</ul>
2、有序列表:
ordered list 有序列表
<ol>
<li>111</li>
<li>222</li>
<li>333</li>
</ol>
3、定义列表:
<dl> <dt>第一章</dt> <dd>111</dd> <dd>222</dd> <dd>333</dd> <dt>第二章</dt> <dd>111</dd> <dd>222</dd> <dd>333</dd> </dl>
table标签
<table border="1" cellpadding="1px" cellspacing="0">
#border属性:表格边框 cellpadding属性:内边距 cellspacing属性:外边距 <tr> <td>第一行,第一列</td> <td>第一行,第二列</td> <td>第一行,第三列</td> </tr> <tr> <td>第二行,第一列</td> <td>第二行,第二列</td> <td>第二行,第三列</td> </tr> </table>
<table border="1"> <thead> <tr> <th>表头1</th> <th>表头2</th> <th>表头3</th> <th>表头4</th> </tr> </thead> <tbody> <tr> <td>1</td> <td>2</td> <td>3</td> <td>4</td> </tr> <tr> <td>1</td> <td>2</td> <td>3</td> <td>4</td> </tr> </tbody> </table>
form表单标签
表单用于向服务器传输数据。
表单能够包含 input 元素,比如文本字段、复选框、单选框、提交按钮等等。
表单还可以包含textarea、select、fieldset和 label 元素。
1、表单属性
HTML 表单用于接收不同类型的用户输入,用户提交表单时向服务器传输数据,从而实现用户与Web服务器的交互。表单标签, 要提交的所有内容都应该在该标签中.
action: 表单提交到哪. 一般指向服务器端一个程序,程序接收到表单提交过来的数据(即表单元素值)作相应处理,比如https://www.sogou.com/web
method: 表单的提交方式 post/get 默认取值 就是 get(信封)
get: 1.提交的键值对.放在地址栏中url后面. 2.安全性相对较差. 3.对提交内容的长度有限制.
post:1.提交的键值对 不在地址栏. 2.安全性相对较高. 3.对提交内容的长度理论上无限制.
get/post是常见的两种请求方式.
2、表单元素
<input> 标签的属性和对应值
type: text 文本输入框 password 密码输入框 radio 单选框 checkbox 多选框 submit 提交按钮 button 按钮(需要配合js使用.) button和submit的区别? file 提交文件:form表单需要加上属性enctype="multipart/form-data"
<form action="127.0.0.1:3306/index" method="get" enctype="multipart/form-data">
<p>用户名:<input type="text" name="username" readonly></p> # readonly属性: 只读
<p>密码:<input type="password" name="password"></p> <p><input type="submit" value="点我"></p> 性别: 男<input type="radio" name="sex">
女<input type="radio" name="sex"> <p>互斥name属性值必须一致</p> <!--name属性是给服务器看的--> <p>爱好: 足球<input type="checkbox" name="hobby" value="1" checked> #checked属性:默认勾选 排球<input type="checkbox" name="hobby" value="2"> 篮球<input type="checkbox" name="hobby" value="3"> </p> <p>上传文件<input type="file"></p> <p><input type="reset">重置清空</p> </form>
上传文件注意两点:
1 请求方式必须是post
2 enctype="multipart/form-data"
file_obj=request.FILES.get('files') f = open(file_obj.name,'wb') iter_file=file_obj.chunks() for line in iter_file: f.write(line) f.close()
select下拉标签
name:表单提交项的键. size:选项个数 multiple:multiple <option> 下拉选中的每一项 属性: value:表单提交项的值. selected: selected下拉选默认被选中 <optgroup>为每一项加上分组
籍贯:<select name="city" multiple size="2"> <optgroup label="广东省"> <option value="sz">深圳</option> <option value="gz">广州</option> <option value="hz">惠州</option> <option value="zs">中山</option> </optgroup> <optgroup label="北京市"> <option value="sz">海淀</option> <option value="gz">朝阳</option> <option value="hz">房山</option> <option value="zs">通州</option> </optgroup> </select>
<textarea> 文本域
name: 表单提交项的键. cols: 文本域默认有多少列 rows: 文本域默认有多少行 <p><textarea cols="30" rows="10" name="t1">自我简介</textarea></p>
<label>标签
<label for="www">姓名</label> <input id="www" type="text">