能够玩转BKY皮肤的 geek,有一半最后都成为了前端大师
By Conmajia
March 9, 2018
剩下的那一半全部扑街了。
世纪之初,BKY那些花里胡哨的预设皮肤曾经让初识网络的懵懂学子雀跃不已. 然而以现在的审美眼光看来,这些带着一股子扑面而来的浓厚乡土气息的丑陋界面,根本就是网络泡沫时代留下的泛着油光的渣滓. 当你深入了解隐藏在它们身后的拙劣代码之后,一阵阵波澜起伏的悸动不停在你的胃中翻腾。

所幸BKY留出了几乎不加限制的自定义皮肤接口,使得闲极无聊的博主们能有机会给自己的页面做上一套完整的 facelift. 我也曾尝试过修改博客皮肤,可是这种狂热式的冲动在我打开网页源代码的几乎同一瞬间即告分崩离析。
凌乱的布局和命名
记得我在初学 HTML 的时候,只会在 Dreamweaver 里用复杂的 <table> 来排列各个页面内容。某天一位号称浸淫网络世界多年的大神看不过去,像兜售黄色影碟的小贩一样把我拉到无人处,用只有我们俩能听到的声音悄悄告诉我有一个叫 division 的好东西可以拿来排版。从此我的网页上开始出现了 <div> 的曼妙身姿。一个、两个、三个,年岁渐长,<div> 也见长,终于我迷失在错综复杂的布局中,完全不记得谁是谁了。从那时起,一种莫名的崇拜之情就深深植根在我心底。在我看来,那些完全使用 <div> 布局的页面,无一不是出自大师之手,直到我在博客的页面上点击了「查看源代码」为止。
它来自某个默认皮肤的源代码,充满了无用嵌套的 <div> 标签,再搭配五花八门的id名字,让我恍惚间以为自己看到的是一名套着 5 层廉价秋衣的淳朴大汉,上面印满了 SPORT 和 FASHION 这样图腾般的英文。无论是 id 和 class 间游刃有余的切换,还是 post_detail 和 postContent 之类风骚的 naming,更甚至是 c_b_p_desc 这样的后现代主义符号具像化,任何一个都能把我可怜的英文思维折磨得体无完肤。于是我只好沿着一个一个的 <div> 摸索过去,试图能在洋洋洒洒的代码汪洋里找到一盏指路的灯塔。可是当我最终整理出了页面的布局之后,现实却结结实实地抽了我一个大嘴巴子。
这美轮美奂的布局,挟带着网易新闻评论区的腥风血雨,终于完全赤裸地呈现在了我眼前。
那层层叠叠的框架像是一圈一圈的年轮般疯狂生长,迅速占满了我那点可怜的脑容量,将我击晕在地。悠悠醒转后,我默默地关上电脑,以近乎修枯禅的虔诚沉思了三天三夜,终于决定先从整理布局开始做起。

整理布局
在这荆棘遍布的 <div> 迷宫中徘徊几天后,我好歹理出了一张脑图来指引继续前行的道路。
我一面抗拒着充满魔性的标签命名,一面标记出那些多余的 <div>。相信我,这绝对是一个痛苦的过程,尤其对我这样可悲的强迫症患者来说,需要在思考的同时,努力压制住挖出BKY这些前端工程师早逝的英语老师鞭尸的强烈想法。
a、b、c、d删除多余的层叠 <div>

据科学家统计,网络喷子的记忆只有 7 秒,为了在这短暂的 highlight 里完成验证,我给自己准备了一个简单的例子。
| 全是他妈的垃圾
删除废物 |
Node 1
Node 1-1
Node 1-1-1
Node 1-1-1-1
Node 1-1-1-2
Node 1-2
Node 1-3
|
能够玩转BKY皮肤的 geek,有一半最后都成为了前端大师的更多相关文章
- 玩转 ”hello word“,Python程序员大多数都没有实现过
很多人学习Python很长时间,对于'hello word' 的认知,很多已经从事Python多年的程序员的认知也就只有: print(hello wrod) 但是有没有让hello word 变得不 ...
- 阿里小哥带你玩转JVM:揭秘try-catch-finally在JVM底层都干了些啥?
让我们准备一个函数: 然后,反编译他的字节码: 首先我们介绍异常表:在编译生成的字节码中,每个方法都附带一个异常表. 异常表中的每一个条目代表一个异常处理器,并且由 from 指针.to 指针 ...
- [转载] 深入 nginx 架构
原文: http://www.cnbeta.com/articles/402709.htm 了解 nginx 架构帮助我们学习如何开发高性能 web 服务. 为了更好地理解设计,你需要了解NGINX是 ...
- 深入NGINX:我们如何设计它的性能和扩展性
为了更好地理解设计,你需要了解NGINX是如何工作的.NGINX之所以能在性能上如此优越,是由于其背后的设计.许多web服务器和应用服务器使用简单的线程的(threaded).或基于流程的 (proc ...
- 深入NGINX:nginx高性能的实现原理
深入NGINX:我们如何设计它的性能和扩展性 来源: cnBeta 原文链接 英文原文:Inside NGINX: How We Designed for Performance & Sca ...
- Nginx 原理篇
前言 在学习 Nginx 之前,我们首先有必要搞清楚下面几个问题: 1. Web服务器是怎么工作的? 2. Apache 与 Nginx 有何异同? 3. Nginx 工作模式是怎样的? 下面就围绕这 ...
- ngnix高并发的原理实现(转)
英文原文:Inside NGINX: How We Designed for Performance & Scale 为了更好地理解设计,你需要了解NGINX是如何工作的.NGINX之所以能在 ...
- MFC加载皮肤 转自:http://www.cctry.com/thread-4032-1-1.html
VC皮肤库SkinSharp 1.0.6.6的使用: SkinSharp又称Skin#,是Windows环境下一款强大的换肤组件.SkinSharp作为换肤控件,只需要在您的程序中添加一行代码,就能让 ...
- VC皮肤库SkinSharp 1.0.6.6的使用
SkinSharp又称Skin#,是Windows环境下一款强大的换肤组件. SkinSharp作为换肤控件,仅仅须要在您的程序中加入一行代码,就能让您的界面焕然一新,并拥有多种主题风格和色调的动态切 ...
随机推荐
- BZOJ_3427_Poi2013 Bytecomputer_DP
BZOJ_3427_Poi2013 Bytecomputer_DP Description 给定一个{-1,0,1}组成的序列,你可以进行x[i]=x[i]+x[i-1]这样的操作,求最少操作次数使其 ...
- 【毕业原版】-《贝德福特大学毕业证书》Bedfordhire一模一样原件
☞贝德福特大学毕业证书[微/Q:865121257◆WeChat:CC6669834]UC毕业证书/联系人Alice[查看点击百度快照查看][留信网学历认证&博士&硕士&海归& ...
- Java基础-常用的String方法
先从String的new的方式 说起 这是面试题里面经常出现的 算是老套路之一 就是 比较下列两个的变化 两种实例化的区别 第一种String name1 = "好人";Strin ...
- vue2.0 axios封装、vuex介绍
一.前言 博主也是vue道路上的行者,道行不深,希望自己的东西能对大家有所帮助.这篇博客针对 了解过vue基础,但是没有做过vue项目的童鞋.如果想看基础指令,可以看我之前的一篇博客,请点击 跳转, ...
- [asp.net mvc 奇淫巧技] 06 - 也许你的项目同一个用户的请求都是同步的
一.感慨 很久前看到一篇博客中有句话大致的意思是:“asp.net 程序性能低下的主要原因是开发人员技术参差不齐”,当时看到这句话不以为然,然而时间过的越久接触的.net 开发人员越多就越认同这句话: ...
- Docker最全教程——Redis容器化以及排行榜实战(十三)
前言 容器教程的路还很长,笔者尽量根据实践来不断地完善.由于在编写的过程中还会有完善和补充,后续可能会以番外来补充. 接下来会分享TeamCity.树莓派等内容,节奏可能会有点跳脱. 另外,长沙.NE ...
- 干货|一个案例学会Spring Security 中使用 JWT
在前后端分离的项目中,登录策略也有不少,不过 JWT 算是目前比较流行的一种解决方案了,本文就和大家来分享一下如何将 Spring Security 和 JWT 结合在一起使用,进而实现前后端分离时的 ...
- Springboot文件上传代码笔记
1.在src下创建filter包,包内Class名UploadFilter package com.gd.filter; import org.apache.catalina.servlet4prev ...
- Windows Server 2016 安装虚拟机版黑群晖
硬件配置 Dell R730 CPU: Intel(R) Xeon(R) CPU E5-2603 v4 @1.70GHz(6 cores) Ram: 16Gb HDD: 系统-600GB SAS X2 ...
- centos7 ambari安装HDP
环境介绍:操作系统为Centos7.1:测试设备全部为内网设备,不通公网,所以需要配置本地yum源: 首先安装ansible工具,用来批量安装ambari.java以及基础的一些配置: 一. 免密钥登 ...