1,关于HTML里的BFC规范
BFC即Block Formatting Contexts(块级格式化上下文)。具有BFC特性的元素可以看作是隔离了的独立容器,容器里面的元素bu’hui在布局上影响到外面的元素,并且BFC具有普通元素所没有的一些特性。
二、触发BFC规范的条件:
1.浮动元素:float除none以外的值
2.绝对定位元素:position为(absolute、fixed)
3.display 为 inline-block、table-cells、flex
4.overflow为(hidden、auto、scroll)
三、BFC特性以及应用:
1.解决margin叠加和问题
2.解决浮动问题
3.解决父子元素覆盖
2,关于css居中的三种方案
1,弹性盒居中
.parent {
display: flex;
justify-content: center;
align-items: center;
}
复制代码
2,定位加移动
.parent {
position: relative;
}
.child {
position: absolute;
top: 50%;
left: 50%;
transform: translate(-50%, -50%);
}
复制代码
3,当宽高确定时
.parent {
position: relative;
}
.child {
position: absolute;
top: 0;
left: 0;
button:0;
left:0;
margin:auto;
}
复制代码
3,关于JS中的commonJS规范
1,核心: 每一个文件就是一个模块,拥有自己独立的作用域,变量,以及方法等,对其他的模块都不可见。
2,特点: (1): 所有代码都运行在模块作用域,不会污染全局作用域。
(2): 模块可以多次加载,但是只会在第一次加载时运行一次,然后运行结果就被缓存了,以后再加载,就直接读取缓存结果。要想让模块再次运行,必须清除缓存。
(3): 模块加载的顺序,按照其在代码中出现的顺序。
结尾:(1)CommonJS规范规定,每个模块内部,module变量代表当前模块。这个变量是一个对象,它的exports属性(即module.exports)是对外的接口。加载某个模块,其实是加载该模块的module.exports属性。
(2)require命令的基本功能是,读入并执行一个JavaScript文件,然后返回该模块的exports对象。如果没有发现指定模块,会报错。
import和require的区别
node编程中最重要的思想就是模块化,import和require都是被模块化所使用。
遵循规范
require 是 AMD规范引入方式
import是es6的一个语法标准,如果要兼容浏览器的话必须转化成es5的语法
调用时间
require是运行时调用,所以require理论上可以运用在代码的任何地方
import是编译时调用,所以必须放在文件开头
本质
require是赋值过程,其实require的结果就是对象、数字、字符串、函数等,再把require的结果赋值给某个变量
import是解构过程,但是目前所有的引擎都还没有实现import,我们在node中使用babel支持ES6,也仅仅是将ES6转码为ES5再执行,import语法会被转码为require