在 HTML 和 CSS 中转义特殊字符

HTML CSS 转义

在编程语言中,字符串 直接量(Literal Value,也叫字面量)需要用一对分隔符来定义, 比如 "author:harttle" 中前后的引号。 那么当字符串中要表示分隔符时就需要 转义,比如 "author:\"harttle\""

JavaScript 是一种 通用编程语言,这类语言的转义相对比较一致通常使用反斜线,比如 \n, \r 等。 但是在 HTML、CSS 这样的 领域特定语言 中为了在大多数场景中提供更简单的语法, 转义就会比较麻烦。下文中给出 HTML 和 CSS 中的字符串转义机制,以及如何进行转义的代码片段。

本文介绍的是 HTML 和 CSS 中的转义,不是 JavaScript 中的 escape 方法(它可以产生一个类似 URL 编码的结果)。 此外关于百分号编码请参考 百分号编码与 encodeURIComponent,关于表单编码请参考 HTTP 表单编码 enctype

获取 DOM 元素的绝对位置

DOM HTML CSS

在操作页面滚动和动画时经常会获取 DOM 元素的绝对位置, 例如 本文 左侧的悬浮导航,当页面滚动到它以前会正常地渲染到文档流中, 当页面滚动超过了它的位置,就会始终悬浮在左侧。

本文会详述各种获取 DOM 元素绝对位置 的方法以及对应的兼容性。 关于如何获取 DOM 元素高度和滚动高度,请参考 视口的宽高与滚动高度 一文。

HTTPS 交互过程分析

HTTPS TCP TLS ALPN SNI

如今 HTTPS 已经普遍应用了,在带来安全性的同时也确实给 Web 引入了更多复杂的概念。 这其中就包括一系列从没见过的网络协议。现在 Harttle 从一个发往 github.com 的请求谈起, 逐字节分析 HTTPS 的协议内容和相关概念,从 TCP 握手到 TLS 协议, 并稍微介绍一些这个请求涉及的 TLS 扩展协议:SNI 和 ALPN。

为啥我写不出文档

方法学 设计 文档

当有人跟你说 “我们整理一个文档” 的时候,有没有考虑过这文档是不是没法做? 就像收到需求时可以说没法完成一样,文档也不是总是可以写出来的。 下次不想写文档时可以把这篇文章丢给他,也许这是本文最大的意义。

可能因为说话是人类的天赋,从未有人怀疑过写不出文档的可能性。 这大概就是很多文档就像废话一样没用的原因吧。 那下面 Harttle 就开始列举写好文档各种客观条件,并突出其客观性和无法抗拒性。

从 Git 中移除某些历史 Commit

Git Git-Workflow

在 Git 开发中通常会控制主干分支的质量,但有时还是会把错误的代码合入到远程主干。 虽然可以 直接回滚远程分支, 但有时新的代码也已经合入,直接回滚后最近的提交都要重新操作。 那么有没有只移除某些 Commit 的方式呢?可以一次 revert 操作来完成。

安全地回滚远程分支

Git Github Git-Workflow

在 Git 中使用 reset 可以让当前分支回滚(reset)到任何一个历史版本, 直接移除那以后的所有提交。但这更改了 Git 的历史,Git 服务通常会禁止这样做。 这便需要一个更安全的方式将代码状态回到历史版本,同时不更改 Git 历史。

如果直接回滚会影响到最近的提交,可以参考 从 Git 历史移除某些 Commit 在回滚的同时保留最近的有效提交。

所谓 保护分支,就是指不允许改写 Git 历史的分支。在 Github 中对应的选项是 Force Pushes,该选项默认处于 Disallow 状态。

上一页 下一页