HTML

浏览器内核:

IE:trident         Firefox : gecko        Safari/chrome : webkit        Opera : presto(新版使用与chrome一样的基于webkit开发的blink内核)。

<!DOCTYPE>:

声明位于文档最顶部的位置,用于告知浏览器使用标准模式还是怪异模式来解析HTML或XHTML文档。

怪异模式、标准模式:

怪异模式(Quirks):在IE6一下浏览器由于对css的解析能力不好,IE产生冠以模式来解析浏览器,在怪异模式下, width 和 height 值为 content+padding+border 。并且为行内元素设置                                宽高可以生效。(应该还有很多,一时间想不起了~等我查完后补上)。

标准模式(Standards):为W3C的标准模式, width 和 height 值只是content值,所以如果为元素设置 padding 值的话页面显示的宽高就会大于你设置的width和height。这种情况需要计算可能会比较麻烦,所以css3加入新的css属性 box-sizing 具体css属性将在css篇进行详述。

块元素、行内元素:

块元素:  div p h1 h2 h3 h4 h5 h6 ul ol li address form table section article aside header hgroup footer nav (section之后为HTML5新增,关于HTML5的梳理在下面)。

行内元素: span tr td th a label textarea input slelect img time (textarea之后的因为是替换元素或叫做内联块元素,可以使用css为其设置宽高,但不会占据一整行)。

标签语义化:

1.去掉或样式丢失的时候能让页面呈现清晰的结构

2.屏幕阅读器(如果访客有视障)会完全根据你的标记来“读”你的网页

3.搜索引擎依赖于标记来确定上下文和各个关键字的权重

4.便于团队开发和维护

HTML5

HTML5新增:

结构标签:section  article  aside  header  hgroup  footer  nav  figure

表单标签:<input type = "email"> type值的增加  email(必须输入Email地址)url(必须输入URL地址)number(必须输入数值)date(选取年月日)month(选取年月)week(选                 取周和年)time(选取时间小时和分钟)datetime(选取UTC时间)datetime-local(选取本地时间)

功能标签:video(视频播放)audio(音频播放)mark(高亮文字)time(时间日期)canvas(画布)command(命令按钮)

还有很多,因为不常使用所以没有记住,有想全面了解的童鞋可以去看书《HTML5与CSS3权威指南》。

HTML5废除标签:

单纯为了展示样式的,可以使用css替代的标签被废除:basefont  big  center  font  s  strike  tt  u

不再使用frame框架

只有部分浏览器支持的标签:applet  bgsound  blink  marquee

其他:rb  acronym  dir  isindex  listing  xmp  nextid  plaintext

canvas:

 <canvas id="canvas">浏览器不支持canvas时出现这行文字</canvas> 
var canvas = document.getElementById('canvas');//获取画布
var context = canvas.getContext('2d');//设置2d上下文
canvas.width = 500;//画布宽度
canvas.height = 500;//画布高度
//线条绘制
context.moveTo(0,50);//起点
context.lineTo(100,50);//终点
context.strokeStyle = "#f00";//线条样式
context.stroke();//线条绘制
//填充绘制
context.moveTo(10,70);//起点
context.lineTo(60,70);//..
context.lineTo(60,120);//..
context.lineTo(10,120);//..
context.lineTo(10,70);//回到起点形成矩形
context.fillStyle = "#ff0";//填充样式
context.fill();//填充绘制
//矩形绘制函数
context.strokeRect(70,150,70,70);//空心
context.fillRect(150,150,70,70);//实心
//圆形绘制
context.beginPath();//开始一个绘制
context.arc(150,300,50,0,2*Math.PI);
context.stroke();
context.closePath();//结束一个绘制
//线性渐变
context.beginPath();
var g1 = context.createLinearGradient(0,0,100,100);//xStart,yStart,xEnd,yEnd
g1.addColorStop(0,"#f00");//offset(0-1),color
g1.addColorStop(1,"#ff0");//offset(0-1),color
context.fillStyle = g1;//设置样式
context.fillRect(100,0,200,50);
context.closePath();
//径向渐变
context.beginPath();
var g2 = context.createRadialGradient(350,0,0,400,50,80);//xStart,yStart,radiusStart,xEnd,yEnd,radiusEnd
g2.addColorStop(0,"blue");
g2.addColorStop(1,"green");
context.fillStyle = g2;
context.arc(400,50,50,0,2*Math.PI);
context.fill();
//图形变形
//context.translate(x,y);//平移
//context.scale(x,y);//扩大
//context.rotate(angle);//旋转的角度
//文字
context.font = "bold 40px Arial";//字体
context.shadowColor = "#3c3c3c";//阴影颜色
context.shadowOffsetX = 2;//阴影X轴偏移
context.shadowOffsetY = 2;//阴影Y轴偏移
context.shadowBlur = 2;//阴影模糊程度
context.fillText("text",100,400);//绘制文字
//剪辑区域
//context.clip();

HTML存储:

localstorage:

 function saveStorage(){
var data = new Object;
data.name = document.getElementById('name').value;
data.email = document.getElementById('email').value;
data.tel = document.getElementById('tel').value;
data.memo = document.getElementById('memo').value;
console.log(data);
var str = JSON.stringify(data);//把对象解析成字符串
console.log(str);
localStorage.setItem(data.name,str);
alert('数据已保存~');
loadStorage('show');
}
function loadStorage(id){
var show = document.getElementById(id);
var result = '<table border="1">';
for(var i=0;i<localStorage.length;i++){
var key = localStorage.key(i);
var value = localStorage.getItem(key);
var data = JSON.parse(value);//从字符串解析出json对象
result += '<tr><td>姓名:' +data.name +'</td>';
result += "<td>EMAIL:" +data.email +'</td>';
result += "<td>电话号码:"+data.tel + '</td>';
result += "<td>备注:"+data.memo + '</td></tr>';
}
result+='</table>';
show.innerHTML = result;
}
function findStorage(id){
var find = document.getElementById('find').value;
var str = localStorage.getItem(find);
var data = JSON.parse(str);//从字符串解析出json对象
var result = "姓名:" +data.name +'<br />';
result += "EMAIL:" +data.email +'<br />';
result += "电话号码:"+data.tel + '<br />';
result += "备注:"+data.memo + '<br />';
var target = document.getElementById(id);
target.innerHTML = result;
}
function clearStorage(){
localStorage.clear();
alert('数据清除成功~');
loadStorage('show');
loadStorage('find');
}

sessionStorage:
     与localStorage使用方法相同,区别在于session是存储在浏览器上,是临时存储,localStorage是永久存储。

知识梳理HTML篇的更多相关文章

  1. 知识梳理——CSS篇

    css引入方法 内嵌 <head> <meta charset="UTF-8"> <title>Document</title> & ...

  2. 知识梳理——HTML篇

    浏览器内核: IE: trident Fixfox: gecko Safari: webkit Opera: 以前是presto,现已改用Google Chrome的Blink Chrome: Bli ...

  3. [C# 基础知识梳理系列]专题六:泛型基础篇——为什么引入泛型

    引言: 前面专题主要介绍了C#1中的2个核心特性——委托和事件,然而在C# 2.0中又引入一个很重要的特性,它就是泛型,大家在平常的操作中肯定会经常碰到并使用它,如果你对于它的一些相关特性还不是很了解 ...

  4. Oracle知识梳理(三)操作篇:SQL基础操作汇总

    Oracle知识梳理(三)操作篇:SQL基础操作汇总 一.表操作 1.表的创建(CREATE TABLE): 基本语句格式:       CREATE TABLE  table_name ( col_ ...

  5. Jmeter 接口测试知识梳理——应用基础篇

    Jmeter 使用也有很长时间了,但是一直没有做一下知识梳理,近期会对公司同事做一下这方面的培训,借此机会,把使用过程中应用到的知识,或是遇到的问题,整理出来,方便大家学习! Jmeter 接口测试知 ...

  6. Jmeter 接口测试知识梳理——持续集成篇

    Jmeter 使用也有很长时间了,但是一直没有做一下知识梳理,近期会对公司同事做一下这方面的培训,借此机会,把使用过程中应用到的知识,或是遇到的问题,整理出来,方便大家学习! Jmeter + Ant ...

  7. Jmeter 接口测试知识梳理——环境搭建篇

    Jmeter 使用也有很长时间了,但是一直没有做一下知识梳理,近期会对公司同事做一下这方面的培训,借此机会,把使用过程中应用到的知识,或是遇到的问题,整理出来,方便大家学习! 环境搭建篇 很多文章介绍 ...

  8. C#基础知识梳理索引

    C#基础知识梳理索引 一 引子 之前曾写了一篇随笔<.NET平台技术体系梳理+初学者学习路径推荐+我们的愿景与目标> 三个月过去了,目标使更多的编程初学者,轻松高效地掌握C#开发的基础,重 ...

  9. Babel7知识梳理

    Babel7 知识梳理 对 Babel 的配置项的作用不那么了解,是否会影响日常开发呢?老实说,大多情况下没有特别大的影响(毕竟有搜索引擎). 不过呢,还是想更进一步了解下,于是最近认真阅读了 Bab ...

随机推荐

  1. JSR303注解

    Annotation 属于Bean Validation 规范 应用位置 作用 对Hibernate Core中的元数据的影响 @AssertFalse yes field/property 检查被标 ...

  2. 【poj1112】 Team Them Up!

    http://poj.org/problem?id=1112 (题目链接) 题意 将n个人分成两组,每个人有认识的人,要求每一组中的人互相认识,并且两组人数之差尽可能的小,求如何分. Solution ...

  3. VS调试时同时启动多个项目解决方法

    选中要设置的项目,不要右击里面的属性,而是按f4时显示属性,下面总是在调试时启动设为false.

  4. EF-CodeFirst-2玩的嗨

    时间戳.复杂类型.GUID自增长 GUID自增长 GUID用于当主建那是好处多多,但是和int不同.EF不会自动识别第一个为类名+Id开头或int类型字段 去设置自增长.尴尬的GUID怎么玩呢.. D ...

  5. 企业开发中选择logback而不是log4j的理由

    不知道看到这篇文章的Java工程师有没有考虑过这个问题:为什么在企业开发中会选择logback来记录日志,而不是log4j呢? 如果你以前没有考虑过这个问题,那么现在如果让你考虑一下,你可能觉的会是因 ...

  6. Codeforces 711E ZS and The Birthday Paradox

    传送门 time limit per test 2 seconds memory limit per test 256 megabytes input standard input output st ...

  7. linux学习基础6之sed用法详解

    1 sed 又称为流编辑器,它逐行将文本文件中的行读取到模式空间中间去,将符合编辑条件的行进行编辑后输出到显示器上来.默认sed不编辑原文件只处理模式空间中的内容. 2 sed用法 sed [opti ...

  8. 生活中的MVC模式,一个吃货的理解。

    以下是生活中对于MVC模式的领悟,虽然可笑,轻喷. 2015年 8月 26日 M  => Model       模型 我认为叫做模具更好的理解.批量加工生产具有相同特征的东西.        ...

  9. HTTP常见错误编号

    HTTP 错误 400 400 请求出错 由于语法格式有误,服务器无法理解此请求.不作修改,客户程序就无法重复此请求. HTTP 错误 401 401.1 未授权:登录失败 此错误表明传输给服务器的证 ...

  10. js001-JavaScript简介

    js001-JavaScript简介 1.             JavaScript实现 JavaScript 的三个重要组成部分如下图   1.1.ECMAScript 1.1.1    版本 ...