saber酱的抱枕

生于忧患,死于安乐

01/17
17:25
学习

HTML 表单小细节

1. 如果把单选、复选按钮隐藏,但又要让它能被 tab 到,则不能使用常规的 display: none; 或者 visibility: hidden; 隐藏,这会导致它不能被 tab 到。应该设置宽高为 0,透明度为 0。

2. 单选按钮可以用空格键选中,但再按空格不能取消选中。

那么当它选中之后,再按空格,会发生什么?表面上看什么都没发生,但实际上浏览器会把这个按钮的 checked 先变成 fasle,然后再变成 true。也就是按空格时,浏览器总会把它从未选中变成选中,走一次流程。

不过这个知识点实在有些冷……也很少能用到。
Read More →

HTML 表单小细节

04/23
09:13
学习

不规则的空白

今天有人报告我的 pixiv 图片下载器在某些情况下,无法保存某个图片。我去检查了下,发现这个作品(pid=73111615)最后的空格暗藏玄机。

不规则的空格 空白

复制这个空格,粘贴到别的地方,把光标放到最后,然后按键盘的 ← 箭头,会发现需要按 4 次才能到这个空格的前面。

复制到浏览器控制台,发现确实是 4 个字符。

不规则的空格 空白

经过检查,第一个空格是普通的空格,后面 3 个是特殊字符,它并不会显示出来。浏览器控制台里那时应该是做了特殊处理。这玩意放在代码里,ESLint 报错说这是“irregular whitespace”,不规则的空白。

最后我复制它的 Unicode 码 \u200b,把它替换掉了。

不规则的空格 空白

特殊字符防不胜防啊,不知道以后还会不会遇到别的来捣乱。

不规则的空白

04/21
08:48
学习 软件

NPM Module build failed: Error

vue-cli 里要用 scss,遂安装两个模块:

npm install sass-loader --save-dev
npm install node-sass --save-dev

以前也是这样的,没有问题,这次编译时却报错了:

Module build failed: Error: Cannot find module 'node-sass'

我就奇了怪了。node-sass 正常安装进去 node_modules 文件夹了,怎么还找不到。用 npm 时不时就遇坑,特别是以前没问题的地方,忽然蹦出来给你搞个幺蛾子,还找不到原因,烦死了。

之后我在网上搜索,检查了以下因素:

node-sass 安装是否完整?我是开着全局 ssr 的,不会是下载不完整。但为了死马当活马医,我还是移除它然后重新安装,不行。换用 cnpm 安装也还是不行。
检查版本,安装的版本确实是最新版本啊。
还有的说要 build 使用,执行 npm rebuild node-sass --force,报错。(其实不需要)

最后怎么解决的呢?强制删除 node_modules 文件夹,然后 npm i 重新安装所有包,这下好了。心累。

NPM Module build failed: Error

03/28
02:42
学习

Vue.js 待办事项 Todolist 之 2

在线体验 Github

去年我做了个 Vue.js 的待办事项,是 PC 上的样式,现在又做了个待办事项,算是手机上的。依旧可以设置背景。

之前 pc 上的那个,闹钟有兼容性问题,而手机上这个,不再播放音乐来提醒了,改为使用浏览器的通知。但这需要 HTTPS 和浏览器的支持,所以上面的在线体验是没有通知的。

其他详见 GitHub 里的说明~

Vue.js 待办事项 Todolist 之 2