Skip to content

Instantly share code, notes, and snippets.

View ilife5's full-sized avatar
🎯
Focusing

star ilife5

🎯
Focusing
View GitHub Profile

设计师的理解英文字母字距设计指南

为什么需要在文字之间调整字距

目标,可读性更好。

原因,不同的字母之间无法用等距,因为字型不同,眼睛总是会欺骗人的,明明两个字母之间的字距是相同的,但是由于字距不同,看上去还是很别扭的,过大或者过小。

办法,手动调整或者依赖字体自带的字距。

技能

HTML/Javascript/CSS 技能

  • internship 对HTML/css/js有一定的了解, 知道每种技术的角色定位, 对新技术有一定的涉猎
  • Junior 对W3C标准有一定的了解, 能够编写符合规范的HTML/Javascript/CSS代码
  • senior 对W3C标准和浏览器兼容性有深入的了解, 能够编写简洁高效优雅的HTML/Javascript/CSS代码, 熟悉前端模板技术, 能够用最适合的技术手段解决问题
  • expert 对W3C标准和浏览器实现有深入的了解, 能够帮助公司和团队制定HTML/Javascript/CSS编码规范和开发模式

浏览器兼容性

@ilife5
ilife5 / Post Redirect Get (PRG).md
Created February 19, 2016 10:52
服务端模式

Post/Redirect/Get (PRG) 是一种网络开发设计模式,目的在于避免重复的表单提交,为用户建立更加直观的体验。PRG支持如书签和刷新按钮等可预测行为的场景,避免表单的重复提交。

重复的表单提交

表单通过HTTP POST提交后,用户在浏览器中刷新提交的地址,会导致原来的HTTP POST请求内容重复提交,可能会导致不希望的结果,如订单的重复提交。

为了避免该问题,开发者使用PRG模式——代替了直接返回一个页面,而是返回重定向命令。HTTP 1.1 标准推荐在该情况下使用HTTP 303(对于POST请求,它表示请求已经被处理,客户端可以接着使用GET方法去请求Location里的URI) 状态码,用户可以在浏览器中安全的进行刷新而不会导致表单的重复提交。然而,当前大多数的商业应用仍然使用有问题的HTTP 302(Found)状态码来处理。

PRG模式没法涵盖所有的表单重复提交的场景。一些已知的场景为:

@ilife5
ilife5 / 表单的兼容性问题.md
Created February 19, 2016 10:01
浏览器兼容性

firefox设置表单控件为disabled之后跳转页面,在新页面点击后退按钮后,被设置为disabled的控件并没有恢复

ref

解决方法

//在页面初始化的时候,将控件设置为可用
$(document).ready(function() {
 $('input', this).attr('disabled', false); 

tools

使用zsh作为terminal的默认工具

webstorm --> Preferences --> Tools --> Terminal

在Shell Path中选择zsh的启动文件即可。

Rsync(Remote Sync):10个实用的例子

| Rsync (Remote Sync): 10 Practical Examples of Rsync Command in Linux

Linux/Unix系统中,同本地操作一样能够进行远程拷贝,同步文件和文件夹的场景中,用得最多的命令就是Rsync(Remote Sync)。 使用rsync命令,可以用来在本地,远程机器之间拷贝同步文件,文件夹;能够跨文件夹,跨硬盘和网络;进行数据备份;制作机器镜像。

该文章包含了简单和高级的10个例子,解释了使用rsync命令将文件在本地和远程的linux机器之间传递。 运行rsync命令并不需要root用户的权限。

@ilife5
ilife5 / TypeScript 语言规范.md
Last active May 2, 2017 06:43
typescript中文翻译
@ilife5
ilife5 / TypeScript语言设计目的.md
Last active November 23, 2015 17:26
typescript中文翻译

简介

该文章将基于已有的TypeScript语言,概括该语言的设计原则。该文章不会毛举缕析的将所有的原则列举出来,而是将我们在决定语言形态过程中所使用的规则总结出来。其中的一些规则难免主观,甚至会相互矛盾。设计一个成功程序语言的本质,其实就是在矛盾中找到平衡并作出正确的选择。

推荐阅读TypeScript语言标准的第一章,其中可以找到TypeScript语言的设计背景,以及如何将这些目标实现。

目标

  1. 基于静态结构的分析很可能是错误的。
  2. 对于大段的代码提供结构化机制。