子曰:offsetWidth、clientWidth、scrollWidth 区分
简介
offsetWidth
= border+padding+width+scrollbar
clientWidth
= padding+width
scrollWidth
= padding+width
>= clientWidth
子曰:offsetWidth、clientWidth、scrollWidth 区分
offsetWidth
= border+padding+width+scrollbar
clientWidth
= padding+width
scrollWidth
= 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
正确地获得缓存会带来巨大的性能优势,节省带宽并降低服务器成本,但许多站点都会降低缓存,导致竞争条件导致相互依赖的资源不同步。
绝大多数最佳实践缓存属于以下两种模式之一: