写技术博客这事儿,不少人一上来就想整个大新闻,结果憋了三个月还在草稿箱里吃灰。CSS-Tricks 上个月有位老作者 Mojtaba Seyedi 掏心窝子聊了聊他的投稿经历,从2017年第一篇 Sublime Text 插件合集,到后来狂写33篇 Almanac 文档,这哥们儿踩过的坑和悟出的道儿,简直就是给想动笔又不敢动的人一份“避坑指南”。下面就把这些硬核经验掰开揉碎了讲,顺便附上实操到每个按键的解决方案。
写作卡点
很多开发者写文章的第一个拦路虎不是技术,是心理戏太多。总觉着得写出惊天动地的原创干货才行,或者担心网上已经有人写过了,自己再写就是炒冷饭。Mojtaba 当年差点因为这种心态放弃第一篇投稿,结果随手一搜发现,那些所谓的“同类文章”根本没覆盖他想写的插件,这才硬着头皮投了出去。其实技术写作就像做菜,同样的番茄炒蛋,每个人放糖还是放盐、先炒蛋还是先炒番茄,出来的味道都不一样。关键不是有没有人做过,而是能不能端出自己的味道。
投稿流程
从零到一投出一篇技术文章,按下面这个路子走,基本不会翻车。
选题找点
别一上来就啃硬骨头。回想一下最近工作中哪个重复性操作让想摔键盘,或者哪个属性查了五遍文档还是记不住。这种“痛点”就是最好的选题。比如经常记不清 background-position 里的斜杠前后到底是位置还是尺寸,写一篇小文讲清楚这个点,绝对有人需要。要是实在找不到灵感,翻翻项目的 commit 记录,哪个 bug 修得最曲折,拆解出来就是一篇好文。
搭骨架
动笔前先列个提纲,别小看这一步。用 Markdown 写几个二级标题(比如“问题现象”、“错误尝试”、“正确姿势”、“浏览器兼容”),每个标题下面用三言两语把核心内容塞进去。这时候不用管语法和措辞,哪怕是“这里放个代码示例,展示某属性写错时的效果”这种大白话也行。骨架搭好了,后面就是往里面填肉。
| 结构块 | 内容要点 | 字数控制 |
|---|---|---|
| 问题场景 | 描述坑长啥样 | 不超100字 |
| 错误示范 | 贴翻车代码 | 3-5行代码 |
| 正确解法 | 贴修复代码 | 5-8行代码 |
| 原理解释 | 说清为啥错 | 150字左右 |
填肉润色
按照骨架往里填内容的时候,记住一个原则:代码要能直接复制跑起来。别只贴片段,要给出完整的 HTML/CSS 示例,比如下面这段展示垂直居中的老派和新派写法:
<style>
/* 老方法:table大法 */
.old-center {
display: table;
margin: 0 auto;
width: 200px;
background: #f0f0f0;
}
/* 新方法:min-content 真香 */
.new-center {
width: min-content;
margin: 0 auto;
background: #e0ffe0;
}
</style>
<div class="old-center">看我居中啦</div>
<div class="new-center">我也居中啦</div>填完内容后扔一边晾几个小时,再回来看的时候容易发现逻辑漏洞。这时候重点检查:代码里的变量名是不是无意义的 a/b?有没有忘记交代前置条件?举例能不能让小白看懂?
自审提交
把草稿发给别人看之前,自己先当一回黑粉。逐句读出来,凡是读着别扭的地方就是需要改的。特别检查拼写和基础语法,编辑的时间很宝贵,如果净给人家改错别字,哪还有精力帮你提升内容深度?Mojtaba 特意强调过这点,每次提交前自己至少通读两遍,改到感觉“这玩意儿发了也不丢人”为止。提交的时候按照目标社区的模板填好标题、摘要、标签,把草稿附上,然后就是耐心等反馈。
编辑配合
文章投出去之后不是万事大吉,跟编辑的来回拉扯才是让文章脱胎换骨的关键。
接收反馈
编辑提的修改意见看着多,别炸毛。逐条看的时候区分两类:一类是事实性错误(比如某个属性值写错了),这类闭眼改;另一类是表达优化(比如“这段解释换个顺序更顺”),这类可以跟编辑商量着来。Mojtaba 提到他从编辑 Geoff 那里学了不少技术写作的套路,每次都会对比自己的原稿和编辑改过的版本,把那些调整点记下来,下一篇直接复用。
复盘中迭代
每发完一篇文章,把整个流程复盘一下:选题是不是太窄了?示例代码有没有人反馈跑不通?评论区有没有反复问同一个问题?把这些点记到备忘录里,下一篇写的时候就有意识地避开。就像打游戏,每关的 BOSS 机制记住了,下次刷起来就顺手。
提交提案
如果不想直接写完整文章,也可以先扔个提案过去试试水。提案不用长篇大论,三四句话说明白三件事就够了:要写啥、为啥这值得写、准备用啥角度切入。比如“写一篇关于 min-content 的短文,因为很多人还在用额外的包裹元素做自适应宽度,其实一个属性就能搞定,准备用对比代码展示前后差异”。发出去之后如果被拒了也别玻璃心,编辑拒提案大概率不是因为能力不行,而是选题跟社区当前方向不搭,换个角度或者攒着下次再投。
CSS 技巧示例
Mojtaba 分享了一个他特别喜欢的居中 trick,最早用 display: table 加自动边距,现在有了更优雅的写法。直接上对比代码:
/* 老司机早期方案 */
.center-old {
display: table;
margin-left: auto;
margin-right: auto;
width: 300px;
}
/* 2024年后真香方案 */
.center-new {
width: min-content;
margin-inline: auto;
}min-content 让宽度根据内容收缩,再配合 margin-inline: auto 实现水平居中,少了一层多余的包裹元素,代码瞬间清爽。这个 trick 在弹性布局里尤其好用,比如按钮组或者标签云那种宽度不固定的场景。
