内容简介:本周算法题 Letter Combinations of a Phone Number,看了一篇介绍 :empty 和 :blank 为选择器的文章,分享了 vue 工程编译生产版本时添加图片压缩的方法,分享了一点关于买专栏的想法。还挺有意思的一个题目,因为输入的位数不确定,用递归把每个数拆出来,搞定。When to use the :empty and :blank CSS pseudo selectors
本周算法题 Letter Combinations of a Phone Number,看了一篇介绍 :empty 和 :blank 为选择器的文章,分享了 vue 工程编译生产版本时添加图片压缩的方法,分享了一点关于买专栏的想法。
Algorithm
/** * * Letter Combinations of a Phone Number * https://leetcode.com/problems/letter-combinations-of-a-phone-number * * @param {string} digits * @return {string[]} */ var letterCombinations = function (digits) { const mappings = { '2': ['a', 'b', 'c'], '3': ['d', 'e', 'f'], '4': ['g', 'h', 'i'], '5': ['j', 'k', 'l'], '6': ['m', 'n', 'o'], '7': ['p', 'q', 'r', 's'], '8': ['t', 'u', 'v'], '9': ['w', 'x', 'y', 'z'] }; if (!digits || digits.length === 0) return []; if (digits.length === 1) { return mappings[digits]; } let result = []; let set1 = letterCombinations(digits.substr(0, 1)); let set2 = letterCombinations(digits.substr(1)); for (let i = 0; i < set1.length; i++) { for (let j = 0; j < set2.length; j++) { result.push(set1[i] + set2[j]); } } return result; }; console.log(letterCombinations("23"))
还挺有意思的一个题目,因为输入的位数不确定,用递归把每个数拆出来,搞定。
Review
When to use the :empty and :blank CSS pseudo selectors
https://medium.freecodecamp.org/empty-and-blank-53b9e96151cd
作者介绍了 :empty
和 :blank
两种 CSS 伪选择器。 简单来说, :blacnk
比 :empty
好用,因为 :blank
可以忽略元素间的换行或者空格之类的, :empty
就必须要两个元素中没有东西才能匹配上,比如 <ul></ul>
,所以 :empty
的适用性没有 :blank
强,但是 :blank
的兼容性没有 :empty
好,基本只有 FireFox 能支持(惨)
Tip
vue-cli 打包编译时 -webkit-box-orient: vertical 消失的解决办法。
这周遇到个很奇怪的问题,vue 项目 dev 的时候没问题,到编译 prod 版本之后 -webkit-box-orient: vertical
属性就被删掉了,造成页面显示混乱。
dev 版本 ok,prod 版本有问题,那问题肯定出在 webpack.prod.conf.js
里,差异点是 prod 版本会对 css 压缩,使用的是 optimize-css-assets-webpack-plugin
这个插件。
既然问题找到了,解决方案自然呼之欲出。
最好的方案是修改 package.json 文件中的 browserlist 字段,这个会涉及 autoprefixer 的行为。
// package.json 源配置 "browserslist": [ "> 1%", "last 2 versions", "not ie <= 8" ] // 修改为 "browserslist": [ "> 1%", "last 2 versions", "not ie <= 8", "ios >= 8", "Android > 4.1" ]
告诉 autoprefixer
我们要兼容 iOS 8 还有 Android 4.x,让它别乱删我们的东西。
然后重新编译,就搞定了。
当然,你把 optimize-css-assets-webpack-plugin
的配置注释调也可以,但是个人不建议这样做,因为各个组建间难免有重复的样式代码,或者共同引用同一段样式的,如果没有 optimize-css-assets-webpack-plugin
会有大量冗余代码。
Share
这周双11,极客时间也做了不少活动,专栏打折力度也挺大的。其实对于学习这件事情还是要有辨别能力,虽然我一般会先看看介绍,试读,然后瞄一下目录看看是否是自己感兴趣的话题,但也买到几个感觉内容比较水的专栏。
慢慢自己也摸索了一个『指导原则』。涉及具体语言基础知识的要好好考虑,比如小程序之类的,自己看文档完全可以搞定的,就不要再去买专栏了。
学习是一件好事情,但不要用战术上的勤奋去掩盖战略上的懒惰,多学通用思想,不要拘泥于一两门语言,或者一两个 工具 框架。
祝双十一快乐。
碎碎念
记录一些所思所想,写写科技与人文,写写生活状态,写写读书心得,主要是扯淡和感悟。 欢迎关注,交流。
微信公众号:程序员的诗和远方
公众号ID : MonkeyCoder-Life
以上就是本文的全部内容,希望本文的内容对大家的学习或者工作能带来一定的帮助,也希望大家多多支持 码农网
猜你喜欢:本站部分资源来源于网络,本站转载出于传递更多信息之目的,版权归原作者或者来源机构所有,如转载稿涉及版权问题,请联系我们。
Lighttpd源码分析
高群凯 / 机械工业出版社 / 2010-3 / 59.00元
本书主要针对lighttpd源码进行了深度剖析。主要内容包括:lighttpd介绍与分析准备工作、lighttpd网络服务主模型、lighttpd数据结构、伸展树、日志系统、文件状态缓存器、配置信息加载、i/o多路复用技术模型、插件链、网络请求服务响应流程、请求响应数据快速传输方式,以及基本插件模块。本书针对的lighttpd项目版本为稳定版本1.4.20。 本书适合使用lighttpd的人......一起来看看 《Lighttpd源码分析》 这本书的介绍吧!