By Conmajia
March 9, 2018

剩下的那一半全部扑街了

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


所幸BKY留出了几乎不加限制的自定义皮肤接口,使得闲极无聊的博主们能有机会给自己的页面做上一套完整的 facelift. 我也曾尝试过修改博客皮肤,可是这种狂热式的冲动在我打开网页源代码的几乎同一瞬间即告分崩离析。

凌乱的布局和命名

记得我在初学 HTML 的时候,只会在 Dreamweaver 里用复杂的 <table> 来排列各个页面内容。某天一位号称浸淫网络世界多年的大神看不过去,像兜售黄色影碟的小贩一样把我拉到无人处,用只有我们俩能听到的声音悄悄告诉我有一个叫 division 的好东西可以拿来排版。从此我的网页上开始出现了 <div> 的曼妙身姿。一个、两个、三个,年岁渐长,<div> 也见长,终于我迷失在错综复杂的布局中,完全不记得谁是谁了。从那时起,一种莫名的崇拜之情就深深植根在我心底。在我看来,那些完全使用 <div> 布局的页面,无一不是出自大师之手,直到我在博客的页面上点击了「查看源代码」为止。

▲ 我脆弱的信仰被残忍的击碎

它来自某个默认皮肤的源代码,充满了无用嵌套的 <div> 标签,再搭配五花八门的id名字,让我恍惚间以为自己看到的是一名套着 5 层廉价秋衣的淳朴大汉,上面印满了 SPORT 和 FASHION 这样图腾般的英文。无论是 idclass 间游刃有余的切换,还是 post_detailpostContent 之类风骚的 naming,更甚至是 c_b_p_desc 这样的后现代主义符号具像化,任何一个都能把我可怜的英文思维折磨得体无完肤。于是我只好沿着一个一个的 <div> 摸索过去,试图能在洋洋洒洒的代码汪洋里找到一盏指路的灯塔。可是当我最终整理出了页面的布局之后,现实却结结实实地抽了我一个大嘴巴子。

▲ 默认的布局

这美轮美奂的布局,挟带着网易新闻评论区的腥风血雨,终于完全赤裸地呈现在了我眼前。

▲ 网易评论区,每一个键盘侠心目中的圣城麦加

那层层叠叠的框架像是一圈一圈的年轮般疯狂生长,迅速占满了我那点可怜的脑容量,将我击晕在地。悠悠醒转后,我默默地关上电脑,以近乎修枯禅的虔诚沉思了三天三夜,终于决定先从整理布局开始做起。

整理布局

在这荆棘遍布的 <div> 迷宫中徘徊几天后,我好歹理出了一张脑图来指引继续前行的道路。

▲ mind map才是真正的清真

我一面抗拒着充满魔性的标签命名,一面标记出那些多余的 <div>。相信我,这绝对是一个痛苦的过程,尤其对我这样可悲的强迫症患者来说,需要在思考的同时,努力压制住挖出BKY这些前端工程师早逝的英语老师鞭尸的强烈想法。

▲ 如果可能,我更希望你他妈能叫它们abcd

删除多余的层叠 <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,有一半最后都成为了前端大师的更多相关文章

  1. 玩转 ”hello word“,Python程序员大多数都没有实现过

    很多人学习Python很长时间,对于'hello word' 的认知,很多已经从事Python多年的程序员的认知也就只有: print(hello wrod) 但是有没有让hello word 变得不 ...

  2. 阿里小哥带你玩转JVM:揭秘try-catch-finally在JVM底层都干了些啥?

    让我们准备一个函数:   然后,反编译他的字节码:   首先我们介绍异常表:在编译生成的字节码中,每个方法都附带一个异常表. 异常表中的每一个条目代表一个异常处理器,并且由 from 指针.to 指针 ...

  3. [转载] 深入 nginx 架构

    原文: http://www.cnbeta.com/articles/402709.htm 了解 nginx 架构帮助我们学习如何开发高性能 web 服务. 为了更好地理解设计,你需要了解NGINX是 ...

  4. 深入NGINX:我们如何设计它的性能和扩展性

    为了更好地理解设计,你需要了解NGINX是如何工作的.NGINX之所以能在性能上如此优越,是由于其背后的设计.许多web服务器和应用服务器使用简单的线程的(threaded).或基于流程的 (proc ...

  5. 深入NGINX:nginx高性能的实现原理

    深入NGINX:我们如何设计它的性能和扩展性 来源: cnBeta  原文链接 英文原文:Inside NGINX: How We Designed for Performance & Sca ...

  6. Nginx 原理篇

    前言 在学习 Nginx 之前,我们首先有必要搞清楚下面几个问题: 1. Web服务器是怎么工作的? 2. Apache 与 Nginx 有何异同? 3. Nginx 工作模式是怎样的? 下面就围绕这 ...

  7. ngnix高并发的原理实现(转)

    英文原文:Inside NGINX: How We Designed for Performance & Scale 为了更好地理解设计,你需要了解NGINX是如何工作的.NGINX之所以能在 ...

  8. MFC加载皮肤 转自:http://www.cctry.com/thread-4032-1-1.html

    VC皮肤库SkinSharp 1.0.6.6的使用: SkinSharp又称Skin#,是Windows环境下一款强大的换肤组件.SkinSharp作为换肤控件,只需要在您的程序中添加一行代码,就能让 ...

  9. VC皮肤库SkinSharp 1.0.6.6的使用

    SkinSharp又称Skin#,是Windows环境下一款强大的换肤组件. SkinSharp作为换肤控件,仅仅须要在您的程序中加入一行代码,就能让您的界面焕然一新,并拥有多种主题风格和色调的动态切 ...

随机推荐

  1. Windows上安装配置SSH教程(9)——综合应用:在Windows上使用脚本实现SSH远程登陆与文件传输

    服务器端操作系统:Windows XP 客户端操作系统:Windows10 安装与配置顺序 1.服务端安装OpenSSH 2.服务端配置OpenSSH 3.客户端安装Cygwin 4.客户端安装Tcl ...

  2. sublime text3简体中文版汉化教程

    今天突然想到好像还有一个强大的编译器sublime text 3可是这个是外国的编译器,不过各位不用担心 这个编译器,已经支持中文编译了: 下面就是我关于汉化为中文方面的一些了解以及汉化方式(由于我的 ...

  3. JDBC知识详解

    一.相关概念 1.什么是JDBC JDBC(Java Data Base Connectivity,java数据库连接)是一种用于执行SQL语句的Java API,可以为多种关系数据库提供统一访问,它 ...

  4. Text-CNN-文本分类-keras

    Text CNN 1. 简介 TextCNN 是利用卷积神经网络对文本进行分类的算法,由 Yoon Kim 在 "Convolutional Neural Networks for Sent ...

  5. 关于分布式锁原理的一些学习与思考-redis分布式锁,zookeeper分布式锁

    首先分布式锁和我们平常讲到的锁原理基本一样,目的就是确保,在多个线程并发时,只有一个线程在同一刻操作这个业务或者说方法.变量. 在一个进程中,也就是一个jvm 或者说应用中,我们很容易去处理控制,在j ...

  6. 深入解读Service Mesh的数据面Envoy

    在前面的一篇文章中,详细解读了Service Mesh中的技术细节,深入解读Service Mesh背后的技术细节. 但是对于数据面的关键组件Envoy没有详细解读,这篇文章补上. 一.Envoy的工 ...

  7. Netbeans IDE 安装Emmet插件并解决Emmet插件无效果问题

    Emmet是许多流行文本编辑器的插件,它极大地改进了HTML和CSS工作流程:在Netbeans IDE 下安装Emmet:1.打开Netbeans IDE编辑器,选择 工具—>插件选项,在 可 ...

  8. Java 12 正式发布,8大新特性

    自 2 月 7 日开始,Java/JDK 12 就进入了 RC 阶段.按照发布周期,美国当地时间 3 月 19 日,也就是北京时间 20 号 Java 12 正式发布了! 1.Shenandoah:低 ...

  9. layui,返回的数据不符合规范,正确的成功状态码 (code) 应为:0

    在使用layui的数据表格绑定数据的时候,出现的一些问题,  "返回的数据不符合规范,正确的成功状态码 (code) 应为:0" 之后在网上也查找的了许多的资料,也去看了官网的文档 ...

  10. Bootstrap3级联多选下拉框

    <!DOCTYPE html> <html> <head> <title>Bootstrap3级联多选下拉框</title> <met ...