声明
告诉浏览器用哪个版本进行编写 这个是HTML5的声明方式
标准模式与怪异兼容模式
输出 document.compatMode CSS1Compat w3c的标准模式 BackCompat 浏览器的怪异兼容模式
HTML基本结构
<html lang="zh-CN">
<head>
<meta charset="UTF-8" />
<title></title>
<meta name="keywords" content="" />
<meta name="description" content="" />
</head>
<body>
</body>
</html>
这里html为根标签,每个html文档只有一个
head标签用来存储网页的基本信息
title:
- 主页:网站名称 + 主要关键字/关键词描述
- 详情页: 详情名称 + 网站名称 + 简介
- 列表页:分类名称 + 关键字 + 网站名称
- 文章页:标题 + 分类 + 网站名称
meta:
- chrset:设置编码字符集
- gb2312 中国信息处理国家标准码,解析简体中文编码
- gbk 汉字扩展规范,扩大汉字收录,增加了繁体中文,增加了藏蒙维等少数民族的文字
- UTF-8 万国码,认识全世界基本所以在使用的文字
- keywords 100个字符
- description 描述信息 80-120汉字 综合title + keywords的简单描述(与SEO相关)
搜索引擎认知的优先级(title > description > keywords[前认可度比较低])
body是网页的主体,网页真正显示的部分。
推荐使用语义化的标签
标签
浏览器默认的文字大小是16像素,一般来说浏览器最小字体为12px。
浏览器是认识英文的,当我们写一长串的英文时,它会认为这是一个单词,所以不换行,在加上空格之后开始换行。
英文多空格和回车不会影响,在编辑器内文本的空格和换行(文本分隔符)
在HTML的代码中不能直接出现"<" 和 ">",而是要用<和>(HTML实体字符 就记住<> 即可,其余的可以在w3cschool可查)代替。
<h1></h1>标题标签 h1 - h6 逐渐变小,独占一行,粗体
<p></p>
<b></b>
<strong></strong>
<i></i>
<em></em>
<del></del>删除样式
<br />
<ins></ins>下划线
<address></address>与em差不多,但是语义化表示地址
<div></div>容器 盒子 一定有宽高,一点是写块的,是布局用的
<img src="" alt="" title="" />source 资源 alt 一定加,title选择加
<a href="" target="_blank" ></a>超链接标签 最早是锚点标签
- 作用:
- 超链接标签
- 打电话 tel:13333333333
- 发邮件 mailto:aixiaoye@lfclass.com
- 锚点定位
- 协议限定符
<sub></sub>subscribe 下标标签 作用:做角标 写次方 写化学元素
<sup></sup>superscripted 上标标签 作用:做角标 写次方 写化学元素
<span></span>一般用于区分一般文本与特殊文本
<ol><li></li></ol>order list
- 有序列表
- type属性
- start属性 只有数字可以规定开始的数字是多少
- reversed属性:倒叙
<ul><li></li></ul>unorder list
- 无序列表
- type属性 desc square circle
<dl><dt></dt><dd></dd></dl>
- definition list 定义列表
- dt definition term
- dd definition description
<table border="1" cellpadding="10" cellspacing="10">
<thead>
<tr>
<td>ID</td>
<td>Name</td>
<td>Tel</td>
<td>备注</td>
</tr>
</thead>
<tbody>
<tr>
<td>1</td>
<td>aaa</td>
<td>13333333333</td>
<td>大队长</td>
</tr>
<tr>
<td>信息</td>
<td>2018.3班</td>
<td colspan="2">13位学生</td>
</tr>
<tr>
<td>2</td>
<td>bbb</td>
<td>13333333333</td>
<td>大队长</td>
</tr>
<tr>
<td>3</td>
<td>ccc</td>
<td>13333333333</td>
<td>大队长</td>
</tr>
<tr>
<td>4</td>
<td>ddd</td>
<td>13333333333</td>
<td rowspan="2">小队长</td>
</tr>
<tr>
<td>5</td>
<td>eee</td>
<td>13333333333</td>
</tr>
</tbody>
<tfoot>
<tr>
<td colspan="4">
学生都要成为前端工程师
</td>
</tr>
</tfoot>
</table>
- 表格的加载机制:如果一个普通的表格没有thead、tbody、tfoot这三个标签的话,等数据全部加载完成后才会显示出来,如果这张表里面数据很多,就会等待很长时间,不合理,当加上这三个标签后,就会页眉和页尾会先加载,最后再加载表格中的数据。
- cellpadding 单元格的内边距
- cellspacing 单元格间距
- border 边框
- colspan 列合并 td个数 + colspan数 = 最多列数
- rowspan 行合并 下面要少写一个td 上面要合并的哪个td写rowspan属性 合并几行就写几
- align left right center 写在td上设置居中
- 标签内部的像素值不用+px
- caption标题标签
- thead 表格的页眉标签
- tfoot 表格的页尾标签
- tbody 表格的主体标签
- tr 表格行标签
- th 表头标签
- td 单元格
<ifream src="https://www.baidu.com" width="100%" height="100%" scrolling="no" name="mainFrame" frameborder="1"></ifream>
<frameset rows="10%,90%">
<frame src="top.html"></frame>
<frame>
<frameset clos="20%, 80%">
<frame src="left.html"></frame>
<frame name="mainFrame" src="http://www.jd.com"></frame>
</frameset>
</frame>
</frameset>
- 不可以放在body中
- target="mainFrame" 在left的a标签上写可以实现点左侧切换右侧
用户提交数据 数据名称 + 数据的值
<form method="get|post" action="后端的地址url">
<p>
账号:<input type="text" name="username" maxlength="5"
readonly="readonly"
value="123"
disabled="disabled" /> maxlength="5" 只表示5个字符,不管中文还是英文
readonly 与 disabled 的区别:禁用不可读取,只读可以读取。提交表单时禁用(disabled)不会提交,只读(readnoly)会提交。
</p>
<p>密码:
<input type="password" name="password" />
</p>
<p>
<input type="submit" value="登录" />
</p>
<label for="username"></label>
<input type="text" id="username" name="username" />
label 的 for 属性值与input的id值一样时,点击label可以聚焦input
md5:消息摘要的算法,也叫不可逆加密算法 第一不可逆是指一旦加密之后无法再解密 第二是这种加密算法加密时不需要密钥
单选按钮
<input type="radio" id="male" name="sex" value="male" />
<label for="male">男士</label>
<input type="radio" id="female" name="sex" value ="female" />
<label for="female">女士</label>
name 写同一个可以实现单选
value值可以作为值进行传递
多选
<input type="checkbox" id="js" name="myFavoriteLan" value="js">
<label for="js">Javascript</label>
<input type="checkbox" id="java" name="myFavoriteLan" value="java">
<label for="java">java</label>
<input type="checkbox" id="php" name="myFavoriteLan" value="php">
<label for="php">php</label>
<select name="lang">
<option value="js">JavaScript<option>
<option value="java">Java</option>
<option value="php">php</option>
<option value="python">python</option>
</select>
<textarea cols="30" rows="20" placeholder="请输入文本"></textarea>
cols 可见宽度 8px(英文字符) * cols + 17px / 20px
rows 可见行数
为什么在多行输入的文本框中有空格的现象
是因为 textarea 不可以换行和空格 它的value在双标签中间
如果它的内容为"123123<div>"
输出其value 就是123123<div>
输出其innerHTML 则是 123123lt;divgt;
输出其innerText 是空
placeholder 为什么不用这个而去模拟 浏览器兼容性不行 自己写兼容性更强,可以实现更多的动态效果
fieldset: 用来分组的
<fieldset>
<legend>用户登录</legend>
<p>
<label for="username">用户名</label>
<input type="text" id="username" placeholder="密码"/>
</p>
<p>
<label for="password">密码</label>
<input type="text" id="password" placeholder="密码"/>
</p>
</fieldset>
</form>
元素
内联元素 行间元素 行内元素 inline
- 不独占一行,无法定义宽高
- strong em del ins
块级元素 block
- 不独占一行,可以定义宽高
- img
元素之间的嵌套关系
- 内联元素可以嵌套内联元素 内联块元素,块级元素可以嵌套任何元素
- p标签不可以嵌套div
- a标签不可以嵌套a标签
注释
- 方便后期维护,增加代码可读性
- 找bug(通过多次注释代码查看)
总结
- 内联元素: span strong em del ins label a sub sup
- 块级元素:div hx p address ul ol li dl dt dd table form fieldset legend
- 内联块元素:input img select textarea iframe
- html5:是新的标准
- 有哪些更新:
- 1.声明html的方法改变了 简化了
- 2.简化了编码的声明方式 以前要先声明
- 现在是
- 3.删除了一些旧的标签 center font big small frameset frame s u ...
- 4.增加了音频视屏标签 video audio
- 5.增加了结构化标签 header footer section nav aside
- 6.增加了JavaScript的API 地理定位 离线存储 canvas 应用缓存
- html5技术:比html5规范要大 他是一门技术,结合了各种不同小技术点,比如开发手机app 手机端网站 单页面应用 游戏。
- 移动端使用结构化标签
- JavaScript api 拖拽 web存储 video audio
- css3 过渡 转换 动画
- 综上所有东西开发出来的游戏,单页面应用 移动端 前端框架 vue react angular h5 app(web app) html5+
- html5 开发app :
- angular2 + ionic typescript
- react native
- dcloud html5 +
- weex
- vue