windows10本地用户密码重置
win10 系统忘记用户密码,无法登录。首先区分帐户类型:
已登录 windows 帐号的网络帐户,直接在 windows 的网络帐户管理网站上重置密码即可,参考重置忘记的 Microsoft 帐户密码;
本地帐户如记得密码提示问题,或生成过密码重置盘,则可以直接重置,否则就需要一些额外的技术手段来重置了。
重置密码,不使用第三方软件,仅需系统安装盘
原理
使 cmd 命令行工具在系统环境下,绕过 windows 密码执行,然后重置用户密码
方案
win10 登录界面右下角有一个轻松使用按钮,将轻松使用替换为 cmd 命令行,再重置用户密码
css为什么不能选择相邻的前一个元素
css锥形渐变
git查看与修改当前分支的upstream分支
应用场景
公司的前端框架与项目本身存储于两个不同的远程仓库下,具体项目在创建时,基于前端框架的某个版本。开发一段时间后,若框架有比较重要的更新需要添加到项目中时,基于更新后的框架再将项目中的代码移植过去,通常比较麻烦。
实践下来,现在比较好的方案是给项目两个分支与两个远程仓库,其中一个分支与远程仓库用于项目的开发,另一个分支和远程仓库用于追踪框架的更新,当拉取框架更新后,将追踪框架更新的分支合并到项目分支中即可。这样只需要处理少量冲突,甚至不用处理冲突,就可以完成更新。
这个方案虽比较好用,但是有个风险就是如果忘记更改 dev 分支的上游分支,可能会把项目代码,错误地推送至框架代码库。那么如何方便地查看当前分支的远程上游分支呢?
查看当前分支的上游(upstream)分支
在 git branch 的帮助文档中-v 参数下有一行说明,如果给两个 v 字母,将会相比给一个 v,额外打印出上游分支的名称与链接的工作目录(如果链接的工作目录存在)。
即使用 git branch -vv
就可以查看所有分支的上游分支名称。
javascript防抖和节流
防抖(debounce)
指在高频触发的事件中,延迟调用事件的回调函数直到规定的延迟时间内没有再次触发该事件,若在延迟时间内触发了该事件,则重置延迟时间。
通过防抖的定义,可以知道,防抖使事件的回调只执行了最后的一次。
// 简易实现
function debounce(callback: () => void, delay: number) {
let timer: number | null = null;
return () => {
if (timer) {
window.clearTimeout(timer);
}
timer = window.setTimeout(callback, delay);
};
}
javascript让div元素监听键盘事件
使用背景
通常我们在页面中使用一个截屏按钮,通过点击截屏按钮来截图。业务中发现截屏时如果想要展示一些鼠标 hover 才能展示的数据时,与点击按钮截屏相冲突。故需要使用键盘截屏。
根据业务需求,需要在某个特定的 div 区域绑定键盘事件,发现在 div 上绑定键盘事件没有效果。
键盘事件
keydown 事件触发于键盘按下的时候,keyup 事件触发于键盘抬起的时候。与 keypress 事件(keypress 事件已弃用)不同,所有按键都会触发 keyup、keydown 事件,而 keypress 事件只有产生字符值的按键才会触发。
重点:键盘事件只能由<inputs>
,<textarea>
以及任何具有contentEditable
或tabindex=-1
属性的组件触发
这也就解释了为什么在 div 元素上绑定键盘事件无效了。因为 div 元素不是 contentEditable 元素也没有 tabindex 属性。
tabindex
tabindex 是一个所有的 html 元素都有的全局属性,该属性表示当前元素是否可以聚焦(focus),以及它以何种顺序参与键盘导航。
tabindex 为负值(通常设置为-1),表示元素是可聚焦的,但是不能通过键盘导航访问到该元素。
tabindex 为 0,表示元素是可聚焦的,并且可以通过键盘导航聚焦到该元素,它的相对顺序是根据元素在 DOM 中的顺序决定的。
tabindex 为正值,表示元素可聚焦,且可以通过键盘导航聚焦,它的相对顺序根据 tabindex 递增而滞后获得焦点。若多个元素有相同 tabindex,则相对顺序按照它们在 DOM 中的顺序确定。
通常值为 0、非法值、或没有 tabindex 值的元素应该放到 tabindex 值为正值的元素后面。tabindex 最大不能超过 32767。
解决方案
给 div 元素设置tabindex=-1
即可在 div 元素上监听键盘事件。
// 在tsx中
<div tabIndex={-1} onKeyDown={(event) => console.log(event)}></div>
参考资料
css伪类与伪元素
css详解nth-child伪类选择器
css为什么不建议font-size设置为12px以下
现象
在业务中发现设置小于 12px 的字号不生效,最小只能设置为 12px 的问题。
结论
由于中文字体笔划较密,小于 12px 时,展示效果不佳,故 chrome 浏览器中文版默认最小字号为 12px,英文版则没有最小字号为 12px 的限制。为了有更为统一的用户体验,而无需用户自行修改浏览器默认配置,不使用小于 12px 的字号,是最佳实践。
修改最小字号
如果一定要修改最小字号,地址栏输入chorme://settings/fonts
,进入字体设置,调整最小字号为 0,即可使小于 12px 的字号生效了。
参考资料