1. html css编码规范

    有人建议编码规范这种东西应该落实到ESlint这类工具上去,而不是停留在文档层面。 在我看来,规范也要看和记,难道你用 vscode/sublime 写个demo还要配上语法检查这一套东西么。 HTML section里面要有标题标签 section/aside/article/nav这种标签,需要在里面写一个h1/h2/h3之类的标题标签,因为这四个标签可以划分章节,它们都是独立的章节,需要有标题,如果UI里面根本就没有标题呢?那你可以写一个隐藏的标题标签,如果出于SEO的目的,你不能直接display: none,而要用一些特殊的处理方式,如下套一个hidden-text的类: <style>.hidden-text{position: absolute; left: -9999px; right: -9999px}</style> <section> <h1 class=”hidden-text”>Listing Detail</h1> </section> 要用table布局写邮件模板 由于邮件客户端多种多样,你不知道用户是使用什么看的邮件,有可能是用的网页邮箱,也有可能用的gmail/outlook/网易邮箱大师等客户端。这些客户端多种多样,对html/css的支持也不一,所以我们不能使用高级的布局和排版,例如flex/float/absolute定位,使用较初级的table布局能够达到兼容性最好的效果,并且还有伸缩的效果。 另外邮件模板里面不能写媒体查询,不能写script,不能写外联样式,这些都会被邮件客户端过滤掉,样式都得用内联style,你可以先写成外联,然后再用一些工具帮你生成内联html。 写完后要实际测一下,可以用QQ邮箱发送,它支持发送html格式文本,发完后在不同的客户端打开看一下,看有没有问题,如手机的客户端,电脑的客户端,以及浏览器。 由于你不知道用户是用手机打开还是电脑打开,所以你不能把邮件内容的宽度写死,但是完全100%也不好,在PC大屏幕上看起来可能会太大,所以一般可以这样写: <table style=”border-collapse:collapse;font-family: Helvetica Neue,Helvetica,Arial;font-size:14px;width:100%;height:100%”> <tr><td align=”center” valign=”top”><table style=”border:1px solid #ececec;border-top:none; max-width:600px;border-collapse:collapse”> <tr><td>内容1</td></tr> <tr><td>内容2</td></tr> </table></td></tr></table> 最外面的table宽度100%,里面的table有一个max-width:600px,相对于外面的table居中。这样在PC上最大宽度就为600px,而在手机客户端上宽度就为100%。 但是有些客户端如比较老的outlook无法识别max-width的属性,导致在PC上太宽。但是这个没有办法,因为我们不能直接把宽度写死不然在手机上就要左右滑了,也不能写script判断ua之类的方法。所以无法兼容较老版本outlook.  img空src的问题 有时候可能你需要在写一个空的img标签,然后在JS里面动态地给它赋src,所以你可能会这么写: <img src=”” alt> 但是这样写会有问题,如果你写了一个空的src,会导致浏览器认为src就是当前页面链接,然后会再一次请求当前页面,就跟你写一个a标签的href为空类似。如果是background-image也会有类似的问题。这个时候怎么办呢?如果你随便写一个不存在的url,浏览器会报404的错误。 我知道的有两种解决方法,第一种是把src写成about:blank,如下: <img src=”about:blank” alt>…

  2. 红米1s 绕过账户锁

    MIUI V6 及以上的版本,如果之前登录过小米账号以及设置了设备防丢的话,如果没有退出账户就直接刷机,后果就是设备被锁。有点好奇这个原理是怎么实现的。 第一、手机尝试过线刷、卡刷、9008深度刷,删除fastboot分区等操作,而且刷完之后没有联网,没有sim卡,直接进入到系统,然后我用了论坛上的俄罗斯版MIUI,进行卡刷,或者改名为update.zip用官方的recovery进行升级,升到 V6 版本后开机就立马会有账户锁。 猜测: 手机有隐藏分区记录设备是否上锁,如果是这样的话那么 9008 删分区这些操作还是不够底层,或者说对账户锁无效。。 其中,下面的两条命令至少对 红米1s 2003028的型号是不管用,提示没有 hide 这个命令。 输入adb shell pm hide com.miui.cloudservice 敲回车 输入adb shell pm hide com.xiaomi.finddevice 敲回车 但是刷 V5 的版本体验又太差怎么办?别人的刷机包又不敢用。。 尝试假装卖家去X宝询问小米解锁服务,问了5家,其中有4家店表示只能刷机,且不能自己随意更改其他系统,所以说他们肯定是刷了自己修改的room,只有一家表示解锁完后可以随便刷其他 MIUI room(价格是20)。 我猜想可能是改硬件指纹这种方式。。 此时除了X宝,貌似没有路可以尝试了,google 百度都找了很多方法无非就是上面的思路。由于手边没有其他小米手机,所以无法验证9008模式是否能解开带BL锁的小米手机。 9008模式,网上有几种方式可以进入(一次用一种命令)。建议使用刷机精灵调起 Adb命令行 adb reboot edl fastboot oem edl 论坛里有 红米NOTE3深度变砖以后进入9008模式的方法 关机后,按着音量上下键一块按着,然后连接USB,电脑设备管理器出现9008端口高通驱动 此方法我在 红米1s 联通电信版 上面试过,确实能进但是…

  3. 开源项目的一点思考

    前段时间我说要弄一个 图床工具,目前的进度是 95% 卡在了预览阶段,因为我的上传目录结构设计的略复杂,睡了一晚,想到了解决方案。 前端是用 VueJs + 小部分的 element ui ,涉及到的小点难点反而是比公司做的项目要多(题外话,很多招聘要求github上有star >100的这种,表示不怎么赞同,现在随便做一个demo都能攒上100+的start,作为加分项的这个比重是不是要降低一点了…) 后端最初我是打算用 PHP Laravel 来写的,但是 Laravel 需要的 PHP 版本太高感觉太重,所以换了 Koa2 。 然后前天我看到了一个 论坛程序 Flarum, 也是开源放在 Github 上的一个项目。这个时候我不禁在想,如果我的程序给别人用,别人会用么? 难道我还要写个 Readme 手把手告诉别人怎么装 NodeJs 怎么搭环境么? 安装成本太高!!! 自己玩随便怎么弄,折腾 Docker 折腾各种配置程序,但是让别人用不同。我大概有点明白为什么PHP在‘民间’这么流行的 原因了,傻瓜式安装很重要。作为一个用户,程序安装只是一个基础工作,他想用的是你的功能。如果一开始就被安装环境各种配置给阻断了,那他怎么还会有动力来使用呢? 一般有点动手能力的,比如我,就可能自己写这个么程序了。 不信你去看那些建站cms系统,哪个不是解压丢上源码到服务器上,浏览器输入地址栏,一路下一步就ok了。都是这个套路对不对! 小白用户分不清 Linux的权限 所属用户组这些基础知识,或许连vps都没有,只有一个虚拟空间。所以程序搞成这样势必没人会来用,很尴尬。 所以,现在决定抽空将后端api改为PHP的,而且‘略不情愿’的用回 thinkphp 吧。没办法,谁让人家这么简单易用好上手呢。 总结一下,开源项目需要针对目标人群选择对应的框架,开发方案,否则就是在给自己挖坑。同时要将安装部署方案设计的最简单,安装只是使用前的第一步,步子迈得太大容易扯到蛋。