前端知识点总结(一) Html篇

一、初衷

    时光飞逝,转眼还有两个多月19年就过去了,最近打算更新一系列自己整理的关于前端知识点的一些汇总,算是对自己掌握知识的一个汇总,查漏补缺,系列打算分为四个大块来梳理,大概分为HTML部分Css部分(包括Sass用法)Js部分(包括ES6相关基础)、最后拓展部分总结一些关于常用的方法或者概念梳理。此系列文章纯粹属于温故知新,大部分都是基础的知识,如有整理的不到位之处,望各位轻拍。

二、HTML

1、 HTML5 新特性,语义化

  • Section: 定义文档中的主体部分的节、段
  • Article: 定义来自外部的一个独立的、完整的内容块,例如什么论坛的文章
  • Header: 定义文档、页面的页眉。通常是一些引导和导航信息
  • Footer: 定义了文档、页面的页脚
  • Nav: 定义了一个链接组成的导航部分
  • Progress: 进度条(value,max)
  • Summary,details 定义元素,用户可以点击查看或者隐藏:
  • Datalist: 定义可选数据的列表,与 input 配合使用

2、浏览器的标准模式和怪异模式(quirks mode)

    由来:由于历史的原因,在W3C标准出台前不同浏览器对页面的渲染是不同的。
    区别:

  • a、严格模式,width 是内容宽度,元素真正宽度 = margin + border + padding + width;怪异模式,width 是元素实际宽度,内容宽度 = width - padding - border
  • b、标准模式下给span等行内元素设置widthheight不会生效,而在怪异模式下会生效。
  • c、在标准模式下,一个元素的高度是由其包含的内容决定的,如果父元素没有设置高度,子元素设置一个百分比的高度是无效的。
  • d、怪异模式下margin:0 auto,水平居中失效,需用text-align:center

3、xhtml和html的区别

  • XHTML 元素必须被正确地嵌套。
  • XHTML 元素必须被关闭。
  • XHTML 标签名必须用小写字母。
  • XHTML 文档必须拥有根元素。

4、使用data-的好处

    赋予我们在所有 HTML 元素上嵌入自定义 data 属性的能力,用于存储页面或应用程序的私有自定义数据,以创建更好的用户体验(不进行 Ajax 调用或服务器端数据库查询)。

5、meta标签

    提供有关页面的元信息(meta-information),比如针对搜索引擎和更新频度的描述和关键词。

6、Canvas

     <canvas> 标签定义图形,比如图表和其他图像,但必须使用脚本(js)来绘制图形。首先需要获取canvas对象,创建context对象,getContext("2d") 对象是内建的 HTML5 对象,拥有多种绘制路径、矩形、圆形、字符以及添加图像的方法.下面是canvas的API简单介绍:
     a、Canvas坐标: (canvas是一个二维网格,左上角坐标为0,0):
        FillRect(x,y,width,height): 在画布上绘制width*height的矩形,从左上角(x,y)开始。
        FillStyle: 可以是CSS颜色,渐变,图案默认是#000(黑色)。
     b、Canvas路径: (绘制线条必须使用ink方法例如stroke(),fill() )
        moveTo(x,y): 定义线条开始坐标
        lineTo(x,y): 定义线条结束坐标
        lineTo(x,y): 起点坐标,半径,开始位置,结束位置
     c、Canvas文本:
        Font:定义字体
        fillText:(text,x,y)在canvas上绘制实心的文本(文字,文字起点位置)
        strokeText:(text,x,y)在canvas上绘制空心的文本
     d、Canvas渐变:
        createLinearGradient(x,y,x1,y1) 创建线条渐变
        createRadialGradient (x,y,r,x1,y1,r1) 创建一个径向/圆渐变
        addColorStop:方法指定颜色停止,参数使用坐标来描述,可以是0至1.
     e、Canvas图像:
        drawImage(image,x,y):将图像放在画布上

7、HTML废弃的标签

    font: 可以通过size属性改字体大小,还可以用color属性改变颜色; b : 可以加粗文字 u : 可以加下划线 i : 倾斜; del : 删除线 hr : 水平线;strong : 强调 em : 强调

8、IE6/7/8 bug,及兼容写法

  • 1、IE6 css选择器不支持子选择器
  • 2、在IE浏览器中,定位元素的z-index层级是相对于各自的父级容器,所以会导致z-index出现错误的表现。解决方法:其父级元素定义z-index,有些情况下还需要定义position:relative;

9、css js放置位置和原因

    js是阻塞加载,会影响页面加载的速度,如果js文件比较大,算法也比较复杂的话,影响更大。CSS放在前端是页面渲染时首先是根据DOM结构生成一个DOM树然后加上CSS样式生成一个渲染树,如果CSS放在后面可能页面会出现闪跳的感觉,或者是白屏或者布局混乱样式很丑直到CSS加载完成。

10、什么是渐进式渲染

    以往基于字符串拼接的模板引擎技术, 性能可以,前端不方便,而现在基于 Virtual DOM 实现的后端渲染, 前端舒服, 后端却变慢,原因是 Virtual DOM 难以做静态分析进行预编译, 最终难以提高性能.另外组件级别 Caching(缓存) 方案也不够成熟, 提高性能短期做不到, 那么考虑对服务端渲染的工作进行缩减.比如说, 首屏渲染多少内容? 整页渲染性能低, 能不能只渲染部分,比如说只渲染第一屏主体内容, 而下方或者更详细数据在客户端抓取.就是说, 服务端渲染一部分, 客户端加载一部分, 从而做出效果。

11、html模板语言

    html有打开效率高的先天优势,但也有一个先天缺陷“不支持动态语言”,这也是html模板语言出现的原因,让网站即享受html高效,又享受内容的动态化;使用比较多的模板引擎也就是Handlebars.jsEtpl,基本原理也就是将json数据通过一些方法,例如用对应的字符串匹配替换扩展方法(正则匹配),转换成html模板片段,然后一个实际的javascript循环。

12、meta viewport简介

1
<meta name="viewport" content="width=device-width, initial-scale=1, minimum-scale=1, maximum-scale=1, user-scalable=no">
  • width: 控制 viewport 的大小,可以指定值,还可以特殊的值,如:device-width。
  • height: 与 width 相对应,指定viewport 高度。
  • initial-scale: 初始缩放比例,也即是当页面第一次 load 的时候缩放比例。
  • maximum-scale: 允许用户缩放到的最大比例。minimum-scale:允许用户缩放到的最小比例。
  • user-scalable: 是否允许用户手动缩放。