HTML
1. 概念
静态网页:网页是写死的,不管谁在什么时候访问,都是一样的
动态网页:内容会依靠服务器端的程序来生成,不同人在不同时候访问,显示的内容都不一样,像现在的购物、新闻网站,会根据浏览记录来显示商品、新闻
HTML:超文本标记语言,是描述性语言,是网页的结构和内容,主要学习标签
CSS:层叠样式表,是给网页添加外观,主要学习选择器,属性
JavaScript:脚本语言,是网页的动作行为,动画,交互,主要学习基础语法,BOM,DOM
2. 基础
web开发本质:浏览器输入网址回车发生了什么
- 浏览器给服务端发送了一个消息
- 服务端拿到消息
- 服务端返回消息
- 浏览器展示页面
web本质:服务端,浏览器,文件
cs架构,bs架构
客户端和服务端,消息的格式是约定好的
HTTP协议:浏览器和服务器之间约定好的消息格式
3. HTML标签
<!DOCTYPE HTML>
是文档声明,在第一行
<html></html>
根标签,内容都在里面
<head></head>
定义头部,常见的有<title>,<script>,<style>,<link>,<meta>
<body></body>
定义内容,在浏览器显示,有<h1>,<p>,<a>,<img>,<input>
标签分类:
双标签,单标签<meta>
分类:
-
块级标签:display:block
h1~h6 div p hr li ol ul table form
默认占浏览器宽度一行,能设置长,宽,顶底
-
行内标签:display:inline
a u s i b span br em strong
根据内容决定长度,不能设置长和宽
-
行内块标签:display:inline-block
img input textarea select
在一行内,可设高,宽,顶底
display属性可转换
4. head标签
4.1 title标签
<title>Title</title>
显示浏览器的标签文字信息
4.2 meta标签
-
charset
<meta charset="UTF-8">
编码格式 -
http-equiv
向浏览器传递信息,与之对应的属性是content=变量值<meta http-equiv="refresh" content="2;URL=http://www.baidu.com"> <!--n秒后跳转到对应的网站--> <meta http-equiv="Content-Type" content="text/html;charset=utf-8"> <!--指定文档的内容类型和编码--> <meta http-equiv="x-ua-compatible" content="IE=edge"> <!--让IE浏览器以最高级模式渲染当前网页-->
-
name
用于页面的关键字和描述,是给搜索引擎看的,内容也是content<meta name="keywords" content="meta总结,html meta,meta属性,meta跳转"> <!--搜索引擎的关键字--> <meta name="description" content="路飞学城"> <!--描述信息-->
4.3 其他
<link rel="icon" href="fav.ico"> <!--插入网站的图标,浏览器标签最左边的图标-->
<link rel="stylesheet" type='text/css' href="mystyle.css"> <!--引入外部样式表文件-->
<style type='text/css'></style> <!--定义内部样式表-->
<!--定义或引入JavaScript-->
<script type="text/javascript"></script>
<script src="myscript.js"></script>
5. body标签
5.1 标题标签
h1-h6
<h1></h1>
<h6></h6>
<b></b> <!--加粗-->
<i></i> <!--斜体-->
<u></u> <!--下划线-->
<s></s> <!--删除-->
<sup></sup> <!--上标-->
<sub></sub> <!--下标-->
<em></em> <!--强调,好像跟斜体一样-->
<strong></strong> <!--加粗强调,好像跟加粗一样-->
5.2 段落标签
<p></p>
5.3 超链接a
不能设置高宽
<a href="" target="_blank" title="百度">百度</a> <!--_blank在新标签打开,不写就是_self,title是鼠标悬停时显示-->
<a href="a.zip">下载压缩包</a> <!--会转到资源链接下载-->
<a href="mailto:zhaoxu@tedu.cn">联系我们</a> <!--跳转到邮箱地址,需要设置好邮箱客户端并配置好-->
<a href="#">跳转到顶部</a> <!--跳转到顶部-->
<a href="#p1">跳转到p1</a> <!--跳转到网页内的某个指定标签-->
<a href="javascript:alert(1)">内容</a> <!--在触发a时,执行js代码-->
5.4 列表标签
<ul type="disc">
<li>我的账户</li>
<li>我的订单</li>
<li>退出</li>
</ul> <!--点状列表,默认disc,circle空心圆圈,square实心方块,none无样式-->
<ol>
<li>a</li>
<li>b</li>
<li>c</li>
</ol> <!--序号列表,type='1'start='2',A大写字母,a小写字母,I大写罗马,i小写罗马,start都是用数字开表示-->
5.5 盒子标签div
文档分区
5.6 图片标签img
在一行内显示,可以设置高宽,行内块标签
可以本地地址也可以网络地址
可以png,jpg,gif
<img id="i1" src="http://c.hiphotos.baidu.com/baike/pic/item/91ef76c6a7efce1b27893518a451f3deb58f6546.jpg" style='width:200px;height:200px' alt="找不到了" title="404"> <!--alt是找不到的提示信息,title是鼠标放上去的提示信息-->
5.7 其他特殊标签
<h1>海 燕</h1> <!--表示空格,要几个写几个-->
<p>在苍茫的大海上,<br>狂风……</p> <!--br是换行,一般直接一个p标签写一段不换行-->
<hr> <!--水平线-->
1<a> <!--大于小于号-->
©
&
¥
®
<span></spans> <!--对某几个字圈起来,加上CSS,独立设置样式-->
5.8 表格
<table border="1"cellspacing="0"> <!--表的边框属性-->
<thead> <!--表头-->
<tr>
<th>姓名</th> <!--按行写,从左到右,th-->
</tr>
</thead>
<tbody> <!--表体-->
<tr> <!--按行写,从左到右,td,第一行-->
<td>小强</td>
</tr>
<tr><!--按行写,从左到右,第二行-->
<td>哥</td>
</tr>
</tbody>
</table>
合并表格
在需要合并的第一个写上rowspan='n',需要合并的单元格数,竖向合并
colspan,横向合并
5.9 form表单
常用属性
- action,定义表单被提交时发生的动作,提交给服务器处理程序的地址
- method,定义提交方式
- get,默认值,明文提交,数据显示在地址上,数据最大2k
- post,隐式提交,不会显示在地址栏上,大小无限制
- enctype,表单的编码类型
- application/x-www-form-urlencoded 默认,允许普通字符,特殊字符,不允许提交文件
- multipart/form-data,允许文件,提交文件给服务器用这个,用post
- text/plain 只允许普通字符
- 表单控件
- textarea文本域,cols宽度,rows高度
- select和option选项框,size大于1是滚动条,默认是下拉条,selected预选中
- input
- type
- button 普通的按钮
- text 明文
- password 密文
- radio 单选
- checkbox,复选,checked默认选中
提交 - file 上传文件
期 - value 控件的值,要提交给服务器的数据
- name 控件的名称,服务器用
- disabled 禁用该控件
- label,关联文本与表单元素,点击文本时,如同点击表单元素一样
前后端有数据交互的时候用form表单
- 所有获取用户输入的标签都要放在form表单里面
- 提交数据是键值对,需要name
- 提交按钮,submit,清空按钮用reset
<!DOCTYPE html>
<html lang="zh-CN">
<head>
<meta charset="UTF-8">
<title>form表单实例</title>
</head>
<body>
<form action="http://127.0.0.1:8080/uplload/"method="post"enctype="multipart/form-data"autocomplete="off">
<p>
<label for="i1">用户名:</label>
<input id="i1" name="username" type="text"value="xiao"> <!--默认值,还有readonly只读-->
<input name="username" type="text"placeholder="xiao">
</p>
<p>
密码:
<input name="password" type="password">
</p>
<p>邮箱:
<input type="email"name="email">
</p>
<p> 性别:
<label for="r1">男</label>
<input id="r1" name="gender" type="radio" value="1">
<label for="r2">女</label>
<input id="r2" name="gender" type="radio" value="0">
<label for="r3">保密</label>
<input id="r3" checked name="gender" type="radio" value="2">
</p>
<p> 爱好:
<input name="hobby" type="checkbox"value="basketball">篮球
<input name="hobby" type="checkbox"value="football">足球
<input name="hobby" type="checkbox"value="doubleball">双色球
</p>
<p>生日:
<input name="birthday" type="date">
</p>
<select name="from" id="s1">
<optgroup label="上海">
<option value="pd">浦东</option>
<option value="wt">外滩</option>
</optgroup>
<optgroup label="浙江">
<option value="hz">杭州</option>
<option value="nb">宁波</option>
<option value="sx">绍兴</option>
<option value="wz">温州</option>
</optgroup>
</select>
<select name="from2" id="s2">
<option value="bj">北京</option>
<option value="sh">上海</option>
<option value="zj">浙江</option>
</select>
<p> <textarea name="info" id="s2" cols="30" rows="10">
</textarea>
</p>
<p>头像:
<input name="file" type="file">
</p>
<p> <input type="submit" value="提交上去"></p>
<p> <input type="button" value="空键"></p>
<p> <input type="reset" value="清空"></p>
</form>
</body>
</html>
5.10 input
input系列:
- text
- value 设置默认值
- placeholder 设置占位内容
- password
- radio 单选框
- checkbox 多选框
- date 日期
- datetime 时间
- file 文件
- button 普通按钮,多用JS给它绑定事件
- reset 重置
- submit 提交
- 埋下伏笔:什么时候用
- textarea 大段文本
- select 下拉菜单
- option 具体的下拉选项
- optgroup 分组的下拉框
label
快捷操作
h1*4>a.c1[id=a$]{a标签$}
<h1><a href="" class="c1" id="a1">a标签1</a></h1>
<h1><a href="" class="c1" id="a2">a标签2</a></h1>
<h1><a href="" class="c1" id="a3">a标签3</a></h1>
<h1><a href="" class="c1" id="a4">a标签4</a></h1>
div#di
<div id="di"></div>
dic>p.c1*3
<dic>
<p class="c1"></p>
<p class="c1"></p>
<p class="c1"></p>
</dic>
用alt可以实现多行一起操作
标签的嵌套规则
- 块元素可以包含内联元素或某些块元素
- 行内标签不能嵌套块级标签,只能嵌套内联元素
- h1-h6,p标签不能嵌套块级标签