HTML代码的美感
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
充满美感。所以,我更新了此文!
HTML代码的美感的更多相关文章
- 我的代码观——关于ACM编程风格与librazy网友的对话
序 在拙文 <高手看了,感觉惨不忍睹——关于“[ACM]杭电ACM题一直WA求高手看看代码”>中,我对ACMer们的一些代码“惯例”发表了我的看法, librazy网友在评论中给出了他的一 ...
- 关于C#中程序功能实现,对代码选择的思考
body { background-color: rgb(60,60,60) } 接触C#语言只有短短几天时间,想要写出什么高大上的深入性研究文章,估计也是满篇的猜想和一些没有逻辑的推断.截至目前而言 ...
- Java代码格式化规范实践总结
目标说明 统一良好的代码格式规范可以有效提升开发团队之间的「协作效率」,如果不同的开发团队或者开发人员采用不同的代码格式规范,那么每次Format代码都会导致大量的变化,在Code Review及Me ...
- Golang之chan/goroutine(转)
原文地址:http://tchen.me/posts/2014-01-27-golang-chatroom.html?utm_source=tuicool&utm_medium=referra ...
- 从抽象谈起(三):AOP编程和ASP.NET MVC
AOP(Aspect oriented programming)面向切面编程.说成切面不容易理解,代码哪里有切面?又不是三维物体.概念不管,我们从其思想来理解这个名词吧. AOP的主要思想是把相同.相 ...
- 转载:做Java开发这一年 (火龙果软件)
转载:http://www.uml.org.cn/success/201410205.asp 从去年到现在,从.NET转向Java开发(只是因为项目原因,绝对与平台好坏没有关系)差不多有一年的时间了. ...
- AOP编程和ASP.NET MVC
AOP编程和ASP.NET MVC AOP(Aspect oriented programming)面向切面编程.说成切面不容易理解,代码哪里有切面?又不是三维物体.概念不管,我们从其思想来理解这个名 ...
- 记录JavaFx中非常重要的细节,入门了也未必知道
title: 记录JavaFx中非常重要的细节 JavaFx中有一些疑难杂症,或许你以为你掌握了JavaFx,但是也未必知道我所说的这些问题和解决方案,如果有帮助到你的,可以加群最大最活跃的JavaF ...
- Alpha冲刺报告(8/12)(麻瓜制造者)
今日已完成 邓弘立: 完成了对主页UI控件的更新 符天愉: 没有完成留言模块,只是完成了留言的查询并且将留言多级回复格式化,同时和队友一起部署了商品发布的接口 江郑: 经过了这几天的编码,需求方面的数 ...
随机推荐
- Android Serialization序列化
Android Serialization 目的: 为了方便測试传感器数据处理算法,Android程序的採集数据.序列化保存为文件.pc程序再通过反序列化读入对象,在PC上測试算法. Java 序列化 ...
- (二)Oracle学习笔记—— 序列
1. 序列简介 序列作为数据库里的对象,可以将序列值装入内存以提高访问效率,主要作用是生成唯一的主键值.其作用相当于一个计数器,它并不会与特定的表关联.通过创建Oracle序列和触发器实现表的主键自增 ...
- C语言-一个fopen函数中未使用二进制模式(b)引发的血案
转自:http://blog.csdn.net/hinyunsin/article/details/6401854 最近写了一个网络文件传输模块,为了让这个模块具有更好的移植性,我尽量使用C标准IO ...
- J2EE的体系架构——J2EE
J2EE是Java2平台企业版(Java 2 Platform,Enterprise Edition),它的核心是一组技术规范与指南,提供基于组件的方式来设计.开发.组装和部署企业应用.J2EE使用多 ...
- 字符串算法之 AC自己主动机
近期一直在学习字符串之类的算法,感觉BF算法,尽管非常easy理解,可是easy超时,全部就想学习其它的一些字符串算法来提高一下,近期学习了一下AC自己主动机.尽管感觉有所收获,可是还是有些朦胧的感觉 ...
- vue 父子组件属性传递
父子组件属性传递 注意:0.谁被引用,谁就算子组件 1.属性命名最好完全小写,否则需要如下格式转换:myAttr == my-attr 2.引入的vue组件后必须通过 components 注册才能 ...
- random实现验证码功能
直接上代码: #-*- coding: utf-8 -*- #一个简单的验证码程序 import random #定义一个全局变量,初始值为空字符串 checkcode = '' for i in r ...
- 封装ShareSDK中的分享功能封以及对类似第三方功能封装的心得【原创】
本篇的主题有三个: 1.封装思想的介绍 2.我的封装代码 3.我在封装sharesdk(采用的是简洁版本)分享功能是碰到的问题,以及解决方法. PS:其实这个我之前封装过一次,不过最近在重构项目时发现 ...
- 搭建RocketMQ踩的坑-内存不足
环境是vmvare+ubuntu 1.http://rocketmq.apache.org/docs/quick-start/ 按照官网来启动mqnamesrv和mqbroker报错 错误如下 The ...
- Eclipse 运行程序
运行 Java 程序 我们可以在 Package Explorer 视图 可以在 Package Explorer 视图中快速运行 Java 程序. Package Explorer 视图: 鼠标右击 ...