子曰:offsetWidth、clientWidth、scrollWidth 区分
简介
offsetWidth = border+padding+width+scrollbarclientWidth = padding+widthscrollWidth = padding+width >= clientWidth
子曰:offsetWidth、clientWidth、scrollWidth 区分
offsetWidth = border+padding+width+scrollbarclientWidth = padding+widthscrollWidth = padding+width >= clientWidth
前端开发工程师在根据设计师给定的标注进行设计时,通常会发现,字体通常是是这种样式
1 | font-family: PingFang-SC-Medium; |
在开发中,需要根据font-family 来使用font-weight 来进行替换,替换规则如下:
1 | 100 - Thin |
而下面是根据上述规则进行的总结,因为设计师使用苹果系统,所以得出了如下替换规则:
1 | PingFangSC-Regular - 400 |
font-weight 属性执行字体中字形的重量,这取决于黑度等级或笔画粗细。
其值的意义如下:
100至900
这些有序排列中的每个值,表示至少与其起身拥有相同黑度的重量。其大致符合下列通用重量名称:
1 | 100 - Thin |
normal
与400 相同。
bold
与700 相同。
bolder
指定外观的重量大于继承的值。
lighter
指定外观的重量小于继承的值。
通常一个特定的字体家族仅包含少数的可用重量。若一个重量所指定的自行不存在,则应当使用相近重量的字形。通常,较重的重量会映射到更重的重量、较轻的重量会映射到更轻的重量。下面的例子展示了不同重量将使用的外观,灰色表示该重量的外观不存在、使用的是相近重量的字形:
值bolder 和lighter 表示其值相对于其父元素的重量。基于继承的重量值,其重量值,其重量通常是使用下表计算而得的。子元素将继承计算后的宽度,而不是值bolder 和lighter。
子曰:安全三要素是什么?
下文是从《白帽子讲web安全》的读书笔记
安全三要素是安全的基本组成元素,分别是机密性(Confidentiality)、完整性(Integrity)、可用性(Availability),简称为CIA
机密性要求保护数据内容不能泄漏,加密是实现机密性要求的常见手段。
完整性则要求保护数据内容是完整、没有被篡改的。常见的保证一致性的技术手段是数字签名。
可用性要求保护资源是“随需而得”
在拿权领域中,最基本的要素就是这三个,后来人们想扩充这些要素,增加了诸如可审计性、不可抵赖性等,但最最重要的还是以上三个要素。在设计安全方案时,也要以这三个要素为基本的出发点,去全面地思考所面对的问题。
1.《白帽子讲web安全》1.5 安全三要素
子曰:一日一练-CSS BFC、IFC、GFC和FFC
FC的全称是:Formatting Contexts,是W3C CSS2.1规范中的一个概念。它是页面中的一块渲染区域,并且有一套渲染规则,它决定了其子元素将如何定位,以及和其他元素的关系和相互作用。
BFC(Block Formatting Contexts)直译为”块级格式化上下文”。Block Formatting Contexts 就是页面上的一个隔离的渲染区域,容器里面的子元素不会在布局上影响到外面的元素,反之也是如此。
IFC(Inline Formatting Contexts)直译为”内联格式化上下文”,IFC的line box(线框)高度由其包含行内元素中最高的实际高度计算而来(不受到竖直方向的padding/margin影响)
IFC中的line box一般左右都贴紧整个IFC,但是会因为float元素而扰乱。float元素会位于IFC与与line box之间,使得line box宽度缩短。 同个ifc下的多个line box高度会不同。 IFC中时不可能有块级元素的,当插入块级元素时(如p中插入div)会产生两个匿名块与div分隔开,即产生两个IFC,每个IFC对外表现为块级元素,与div垂直排列。
GFC(GridLayout Formatting Contexts)直译为”网格布局格式化上下文”,当为一个元素设置display值为grid的时候,此元素将会获得一个独立的渲染区域,我们可以通过在网格容器(grid container)上定义网格定义行(grid definition rows)和网格定义列(grid definition columns)属性各在网格项目(grid item)上定义网格行(grid row)和网格列(grid columns)为每一个网格项目(grid item)定义位置和空间。
FFC(Flex Formatting Contexts)直译为”自适应格式化上下文”,display值为flex或者inline-flex的元素将会生成自适应容器(flex container),可惜这个牛逼的属性只有谷歌和火狐支持,不过在移动端也足够了,至少safari和chrome还是OK的,毕竟这俩在移动端才是王道
子曰:merge 使用
在工作协作开发中,使用git 进行版本管理,下面整理了使用git stash 的流程
1.首先是在develop 分支上进行开发,对内容进行了修改,但是并没有进行提交,此时状态为:
1 | git status |
提示如下
1 | On branch develop |
2.此时需要跳到master 分支上进行开发,但是你不想提交你现在正在进行的工作,所以你需要存在这些变更git stash
1 | git stash |
提示如下
1 | Saved working directory and index state WIP on develop: 61b5a09 abb page |
此时调用git status
1 | git status |
提示显示
1 | On branch develop |
3.此时再切换到master 分支进行处理其他事务
1 | git checkout master |
处理完其他事务之后,进行提交
1 | git add . |
4.再次切换回develop 分支进行处理
1 | git checkout develop |
5.查看现在的存储列表
1 | git stash list |
提示如下
1 | stash@{0}: WIP on develop: 61b5a09 abb page |
6.重新应用储藏,同时立刻将其从堆栈中移走
1 | git stash pop |
提示如下
1 | On branch develop |
现在就可以继续在之前的存储上进行开发了
子曰:非真即假
1.undefined
2.null
3.false
4.+0,-0,NaN
5.""
子曰:转载-深入响应式原理
这是位于Vue 中文文档上的介绍,需要多看几遍加深理解
关于本文:
原文:https://cn.vuejs.org/v2/guide/reactivity.html
作者:Vue.js 中文官网
现在是时候深入一下了!Vue 的一个最明显的特性就是其不太引人注意的响应式系统。数据模型仅仅是普通的JavaScript 对象。而当你修改它们时,视图会进行更新。这使得状态管理非常简单直接,不过理解其工作原理同样重要,这样你可以回避一些常见的问题。在这个章节,我们将进入一些Vue 响应式系统的底层的细节。
当你把一个普通的JavaScript 对象传给data 选项,Vue 将遍历此对象所有的属性,并使用Object.defineProperty 把这些属性全部转为getter/setter。Object.defineProperty 是ES5 中一个无法shim 的特性,这也就是为什么Vue 不支持IE8 以及更低版本浏览器的原因。
子曰:介绍npx:npm 包运行器
关于本文:
原文:https://medium.com/@maybekatz/introducing-npx-an-npm-package-runner-55f7d4bd282b 俄语版
作者:@Kat Marchán
将npm 升级到最新版本npm@5.2.0 的人可能会注意到它会在通常的npm 旁边安装了一个新的二进制文件:npx。
npx 是一个工具,旨在帮助完善使用npm 注册表中的包的体验 – 同样地,npm 使得安装和管理托管在注册表上的依赖项变得非常容易,npx 使得使用CLI 工具和托管在注册表上的其他可执行文件变得容易。它大大简化了许多事情,直到现在,还需要一些普通npm 的仪式:
子曰:一日一练-网络 缓存最佳实践
关于本文:
原文:https://jakearchibald.com/2016/caching-best-practices/
作者:@Jake Archibald
正确地获得缓存会带来巨大的性能优势,节省带宽并降低服务器成本,但许多站点都会降低缓存,导致竞争条件导致相互依赖的资源不同步。
绝大多数最佳实践缓存属于以下两种模式之一: