来自分类 HTML+CSS2016-12-07 22:12:00
多行文字垂直居中:
```html
<style>
.align_box_2 {
display: table-cell;
width: 550px;
height: 1.14em;
padding: 0 0.1em;
border: 4px solid #beceeb;
color: #069;
font-size: 10em;
vertical-align: middle;
}
.align_box_2 span.align_word {
display: inline-block;
font-size: 0.1em;
vertical-align: middle;
}
</style>
<div class="align_box_2"><span class="align_word">这里显示多行文字。</span></div>
```
图片的垂直居中:
```ht...
来自分类 HTML+CSS2016-12-07 22:12:00
#### (1)页面结构
* 容器: container
* 页头:header
* 内容:content/container
* 页面主体:main
* 页尾:footer
* 导航:nav
* 侧栏:sidebar
* 栏目:column
* 页面外围控制整体布局宽度:wrapper
* 左右中:left right center
#### (2)导航
* 导航:nav
* 主导航:mainbav
* 子导航:subnav
* 顶导航:topnav
* 边导航:sidebar
* 左导航:leftsidebar
* 右导航:rightsidebar
* 菜单:menu
* 子菜单:submenu
* 标题: title
* 摘要: summary
#### (3)功能
* 标志:logo
* 广告:banner
* 登陆:login
* 登录条:loginbar
* 注册:regsiter
* 搜索:search
* 功能区:shop
* 标题:title
...
来自分类 ES62016-12-07 22:12:00
###### Promise 异步
```javascript
var xhr = new Promise((resolve, reject) => {
setTimeout(() => {
resolve({
id: 1
});
}, 1000);
});
xhr.then((data) => console.log(data));
````
```javascript
var Request = (i) => {
return new Promise((resolve, reject) => {
setTimeout(() => {
console.log(i)
resolve(i+"完成")
}, 1000)
})
}
Request(1)
.then((s) => Request(2))
.then((s) => Request(3))
.then((s) => Request(4))
```
...
来自分类 ES62016-12-07 22:12:00
#### Number.isFinite()用来检查一个数值是否非无穷(infinity)。
#### Number.isNaN()用来检查一个值是否为NaN。
#### Number.isInteger()用来判断一个值是否为整数。
#### Math.trunc():去除一个数的小数部分,返回整数部分。对于空值和无法截取整数的值,返回NaN。
#### Math.sign():判断一个数到底是正数、负数、还是零。
返回五种值:参数为正数,返回+1;参数为负数,返回-1;参数为0,返回0;参数为-0,返回-0;其他值,返回NaN。
#### Math.cbrt:计算一个数的立方根。
#### Math.fround:返回一个数的单精度浮点数形式
#### Math.hypot:返回所有参数的平方和的平方根
#### Array.from方法用于将两类对象转为真正的数组:类似数组的对象(array-like object)和可遍历(iterable)的对象
#### Array.of方法用于将一组值,转换为数组。
#### Array.find方法,用于找出第一个符合...
来自分类 JavaScript2016-12-07 22:12:00
* Promise.all 会等所有 Promise 执行完毕后,把结果放在数组里
* Promise.reduce 按顺序执行
* Promise.mapSeries 方法,这个方法和 Promise.map 类似,只不过是顺序执行的
* Promise.each 方法,和 Promise.mapSeries 方法类似,都是顺序执行,区别是,返回的数组不是所有 Promise 的结果,而是传入 Promise.each 方法的原始数据数组
```javascript
var Promise = require('bluebird');
var p1 = new Promise((resolve, reject) => {
setTimeout(()=>{
resolve(1000)
}, 1000);
});
var p2 = new Promise((resolve, reject) => {
setTimeout(()=>{
resolve(2000)
}, 2000);
});
var p3 = new Prom...
来自分类 HTML+CSS2016-12-07 22:12:00
```css
.wrap-outer {
margin-left: calc(100vw - 100%);
}
/* 或者: */
.wrap-outer {
padding-left: calc(100vw - 100%);
}
```
...
来自分类 JavaScript2016-12-07 22:12:00
# apply
apply是一个非常好用的函数,可以让我们给一个函数预绑定多个参数并生成一个可直接调用的新函数,简化代码。
```javascript
async.apply(t.inc, 3);
// 等价于
function(callback) { t.inc(3, callback); }
```
```javascript
var t = {}
t.inc = function(n, callback, timeout) {
timeout = timeout || 200;
setTimeout(function() {
callback(null, n+1);
}, timeout);
}
t.fire = function(obj, callback, timeout) {
timeout = timeout || 200;
setTimeout(function() {
callback(null, obj);
}, timeout);
}
async.parallel([
fu...
来自分类 JavaScript2016-12-07 22:12:00
# auto
async.auto(tasks, [callback])
auto用来处理有依赖关系的多个任务的执行
如果中途出错,则会把错误交给最终callback,执行完任务的传给最终callback。未执行完成的函数值被忽略
```javascript
async.auto({
getData: function (callback) {
setTimeout(function(){
console.log('1.1: got data');
callback(null, 'mydata');
}, 300);
},
makeFolder: function (callback) {
setTimeout(function(){
console.log('1.1: made folder');
callback(null, 'myfolder');
}, 200);
},
wr...
来自分类 JavaScript2016-12-07 22:12:00
# compose
创建一个包括一组异步函数的函数集合,每个函数会消费上一次函数的返回值。
```javascript
function fn1(n,callback){
log('1.1.f enter: ',n);
setTimeout(function () {
callback(null, n + 1);
}, 10);
}
function fn2(n, callback) {
log('1.1.g enter: ',n);
setTimeout(function () {
callback(null, n * 2);
}, 10);
}
function fn3(n, callback) {
log('1.1.h enter: ',n);
setTimeout(function () {
callback(null, n - 10);
}, 10);
}
var fn = async.compose(fn1, fn2, fn3);
fn(4, funct...
来自分类 JavaScript2016-12-07 22:12:00
```javascript
var data = {
aaa: [11,22,33],
bbb: [44,55],
ccc: 66
};
var keys = [
{name: 'aaa', delay: 300},
{name: 'bbb', delay: 100},
{name: 'ccc', delay: 200}
];
```
# concat
async.concat(coll, iteratee, [callback])
将多个异步操作的结果合并为一个数组。
以并行方式对集合中各元素进行异步操作,然后把得到的结果合并为一个数组,传给最后的callback。
如果中途出错,则把错误以及已经完成的操作的结果交给最后callback。未执行完的则忽略。
```javascript
async.concat(keys, function(key,callback) {
setTimeout(function() {
callback(null, data[key.name]);
}, key.d...