HTML代码的美感

每当我访问精美的网站,我都情不自禁地会去查看源代码。这就好比你拥有一副X光眼镜,能够看到任何人——甚至透视他们的遮羞布。这简直是天经地义的事情嘛!我迫不及待地想了解,这个精美的网站,是不是由同样具有美感的代码所写成,而或者只是金玉其外败絮其中。代码?美感?当然!归根结蒂,代码如诗。(译注:“Code is poetry”为著名博客系统 Wordpress 的宣传语。)这仅仅是最基础的 HTML 而已,自然不如其它动态语言般复杂而优雅,但它依旧保持了它的创造者所赋予的艺术笔触。

这就让我不禁开始思考,如何让代码具有美感?对于 HTML 而言,这一切都是手工活。让我们看看标记语言如何能达到具有美感的境界。

图片有足够大(译注:2000x2000),你大可以把它打印出来并贴在你的个人储物箱中,并让你的朋友留下深刻印象。话说回来,这的确是个令人纠结的大小。我会放出 PSD 原图方便大家修改。

    • HTML5 - HTML5 及其新元素带来了前所未有的美感。
    • DOCTYPE - HTML5 拥有最佳的文档类型
    • Indentation - 制表符与空格用于缩进代码,以正确显示标签之间的父子关系,强调层级结构。
    • Charset - 在所有内容之前,必须在头部进行字符集声明。
    • Title - 网站标题简单而清晰。首先表述该页面的功能,在分隔符之后,用网站标题结尾。
    • CSS - 只用了一个简单的样式表(媒体类型已在样式表中声明),并且仅面向于优良的浏览器。IE6 及更低版本将获取通用的样式表。
    • Body - 为主体赋予 ID,便能在无需更多标记的情况下,给不同页面设定独有的样式。
    • JavaScript - 从 Google (谷歌)调用了 jQuery(最具美感的 JavaScript 脚本库)。仅加载了单个 JavaScript 文件。各脚本都在页面底端进行引用。
    • File Path - 为提高效率,站点资源使用相对路径。从适应转载的角度考虑,内容性文件(如图片)则采用绝对路径。
    • Image Attributes - 图片包含替换文字,主要是为图片缺失情况而服务的,但同时也可用于验证。为了提高渲染效率,图片的宽度与高度最好也要说明。
    • Main Content First – 页面的主要内容应在,基本的标示及导航之后,而在任何辅助内容(如:边栏)之前。
    • Appropriate Descriptive Block-Level Elements – HEADER、NAV、SECTION、ARTICLE、ASIDE ……这些新出现的“描述区段”,都将比从前的 DIV 更好地描述内容。
    • Hierarchy – 大写标题标签将起到实效,并跟随着清晰的“层级结构”。
    • Appropriate Descriptive Tags – 根据不同的需要,列表被标记为:未排序、已排序,以及并不常用的自定义列表。
    • Common Content Included – 在不同页面所出现的相同内容,最好能从服务器端包含到页面中。(无论通过任何对你行之有效的方式、语言、CMS,等等。)
    • Semantic Classes – 不仅需要设立正确的元素名称,还更应做到类和 ID 的命名符合语意:即使没有特定说明,它们也能起到描述的作用。(如“col”比“left”更好)
    • Classes – 当多个元素需要用到类似样式的时候,尽量为它们定义相同的。(重用性)
    • IDs – 当页面中该元素仅出现一次的时候,尽量为它们定义 ID,而请勿为不同元素定义相同 ID。
    • Dynamic Elements – 动态效果仅在确实所需的时候加入。
    • Characters Encoded – 当出现特殊字符的时候,请注意字符编码
    • Free From Styling - 页面上的一切无关样式,甚至无需指明需要怎样的样式。页面上的一切仅限以下三项:所需的站点资源、内容、描述。
    • Comments - 在查看代码的时候,那些并不需要特别强调,或者不是格外明显的内容,将会被包括在评论之中。
    • Valid - 全站的标记符合 W3C 验证。注意标签闭合,保证必要属性,避免废弃方法,等等。
    • 【相关资料】 1、原文 2、原 PNG 3、原 PSD 4、原 HTML

      原文:http://css-tricks.com/what-beautiful-html-code-looks-like/
      翻译:http://horans.cn/what-beautiful-html-code-looks-like/

      译者:虽然不算新文,但是图文结合的方式相当不错。亦根据更新后的文章增补及汉化了附图。
      =====================
      早在两年之前,我便写过这个话题。说来话长,何况正在到来的 HTML5 甚至比当年的 XTML 1.1 更加让 HTML 充满美感。所以,我更新了此文!

时间: 2024-11-02 14:28:18

HTML代码的美感的相关文章

编写可读性代码的艺术

在做IT的公司里,尤其是软件开发部门,一般不会要求工程师衣着正式.在我工作过的一些环境相对宽松的公司里,很多程序员的衣着连得体都算不上(搞笑的T恤.短裤.拖鞋或者干脆不穿鞋).我想,我本人也在这个行列里面.虽然我现在改行做软件开发方面的咨询工作,但还是改不了这副德性.衣着体面的其中一个积极方面是它体现了对周围人的尊重,以及对所从事工作的尊重.比如,那些研究市场的人要表现出对客户的尊重.而大多数程序员基本上每天主要的工作就是和其他程序员打交道.那么这说明程序员之间就不用互相尊重吗?而且也不用尊重自

Java代码格式化规范实践总结

目标说明 统一良好的代码格式规范可以有效提升开发团队之间的「协作效率」,如果不同的开发团队或者开发人员采用不同的代码格式规范,那么每次Format代码都会导致大量的变化,在Code Review及Merge代码时会带来很多的干扰项.因此制定本代码规范希望达成以下目标: 统一Java代码格式规范,确保团队成员间「代码风格一致」: 保证Format代码时不会引入格式上的干扰: 提升团队协作效率.Code Review效率: 怎么实施 在Java代码规范方面目前Google Java Code Sty

解析器组合子

本文引自:http://www.ibm.com/developerworks/cn/java/j-lo-compose/ Ward Cunningham 曾经说过,干净的代码清晰地表达了代码编写者所想要表达的东西,而优美的代码则更进一步,优美的代码看起来就像是专门为了要解决的问题而存在的.在本文中,我们将展示一个组合式解析器的设计.实现过程,最终的代码是优美的,极具扩展性,就像是为了解析特定的语法而存在的.我们还会选取 H.248 协议中的一个例子,用上述的组合式解析器实现其语法解析器.读者在这

转载:做Java开发这一年 (火龙果软件)

转载:http://www.uml.org.cn/success/201410205.asp 从去年到现在,从.NET转向Java开发(只是因为项目原因,绝对与平台好坏没有关系)差不多有一年的时间了.通过这一年时间也有些感触,想从几个面比较一下这两个平台.希望能做到客观公正. 语言 我原来是使用C#语言的,和现在的Java语言相比,现在的Java语言语法就停留在C# 2.0这个年代.语法结构都非常传统,中规中矩.很突出的一点是,因为缺少对闭包的支持,有些用C#很容易做到的,用Java需要写很多废

2015第32周四

团队成员的沟通只限于"业务沟通".大家只忙着干活,项目经理和成员之间,成员和成员之间,都只谈工作上的事情.除此之外的交流,都好像搞运动,完成任务,推一下就动一下,不推就停止了. 明眼人都知道,这样的状态是不对的,长远来看,工作效率是上不来的.工作,尤其是创造性工作,其中是有大量不确定的模糊地带的,需要大家具体协商解决,而不能依靠刚性的制度来事先规定.虽然沟通的问题是工作问题,但离不开工作之外的关系.情商等等"软实力".否则,日常的协作很容易变成公事公办,大家的分工也

思考项目开发1

软件工程—思考项目开发那些事(一) 阅读目录: 1.背景 2.项目管理,质量.度量.进度 3.软件开发是一种设计活动而不是建筑活动 4.快速开发(简单的系统结构与复杂的业务模型) 5.技术人员的业务理解与产品经理的业务理解的最终业务模型 5.1.产品的业务理解(业务流程.数据流程及场景) 5.2.技术人员的业务理解(领域模型.设计模型.抽象建模) 6.技术债务(腐烂的遗留代码) 7.软件项目管理与软件工程的鸿沟(项目管理得有语境上下文) 7.1.软件项目管理其实应该多去重视一些技术层面的管理 7

软件工程—思考项目开发那些事(一)

阅读目录: 1.背景 2.项目管理,质量.度量.进度 3.软件开发是一种设计活动而不是建筑活动 4.快速开发(简单的系统结构与复杂的业务模型) 5.技术人员的业务理解与产品经理的业务理解的最终业务模型 5.1.产品的业务理解(业务流程.数据流程及场景) 5.2.技术人员的业务理解(领域模型.设计模型.抽象建模) 6.技术债务(腐烂的遗留代码) 7.软件项目管理与软件工程的鸿沟(项目管理得有语境上下文) 7.1.软件项目管理其实应该多去重视一些技术层面的管理 7.2.软件工程才是指导软件开发的科学

初步理解[函数重载]和[运算符重载]·转

作者:黄兢成链接:https://www.zhihu.com/question/23407045/answer/24543450来源:知乎著作权归作者所有.商业转载请联系作者获得授权,非商业转载请注明出处. 很多疑问都是想不通那东西具体用于什么地方. 比如我初学 C++ 时,早就知道指针实际就是某个变量的地址,就是不知道具体怎么用.这感觉就仿佛学数学,我知道某定理,也知道某定理的证明是对的,但我就是不知道这东西有什么用.直到学数据结构,接触到链表,才突然明白指针. 所以语法只是初步,更重要的是要

走向编程的阳光大道

无限互联学习笔记连载 第二周 时光飞逝,转眼在无限互联学习已一周时间,在过去的一周里对C语言重新回顾了一番,虽然是一门学过的语言,但仍旧从中学到很多,这一周又接触了一门新的面向对象的编程语言--Objiect c,它和C语言有很多相通之处,现在先大致对OC的基础知识作简单归纳,后边还会再次更新. 1.oc中的数据类型: 2.OC中用#import 导入一个头文件,输出用NSLog,打印时候自动换行,字符串的输出用%@,OC的输出前面要加@ 3.用public表示类的属性在外部可用,在外部可以更改