1. 响应式图片
- html中选择: srcset+ dpr
1234
<img srcset=" examples/images/image-384.jpg 1x, examples/images/image-768.jpg 2x" alt="…">
- css media query+ dpr
12345678910
.img { background-image: url(examples/images/image-384.jpg); }@media (-webkit-min-device-pixel-ratio: 2), (min-resolution: 192dpi) { .img { background-image: url(examples/images/image-768.jpg); }}
这种方法还可以这么写。
12345
<picture> <source srcset="extralarge.jpg" media="(min-width: 1000px)"> <source srcset="large.jpg" media="(min-width: 800px)"> <img srcset="medium.jpg" alt="…"></picture>
sizes in css + srcset
12345<imgsizes="(min-width: 400px) 80vw, 100vw"srcset="examples/images/small.jpg 375w,examples/images/big.jpg 1500w"alt="…">
浏览器通过计算不同大小的图片的 size/(视图尺寸dpr) ,选择最接近1的。比如上面就是
375/(3202) 1500/(320*2)。假设像素比为2.
2. CSS变量和预处理变量有什么不同
css变量可以跟预处理变量达到同样的效果。同时在js中还可以访问到这些变量(属性)。那么就可以达到这样的效果: 通过js改变这些变量来统一变更样式,这样的好处是可以实现响应式栅格这种,嗯,楼主还想到了一键换肤=。=。
3. underscore学习
curry化
将很多参数转为连锁的函数调用
|
|
void 0代替undefined原因
- undefined在低版本浏览器中可以被重写,在局部作用域内也可以被重写(包括chrome)。
那么该用什么来代替
undefined: void+表达式1void (3+4) //undefined除此之外,void 0要比undefined空间小,省下不少字节。