新势力一方面为初学者提供入门指南,另一方面也象借此和已经在从事这个行业进行一点交流。下面是我从事这个行当多年的一些经验总结,希望抛砖引玉,大家不吝赐教。
1、必备工具
其实web标准并不是很复杂的技术,实现web标准的工具也很简单,说白了,只要可以进行纯文本编辑的软件,都可以作为代码编写的gon工具。例如记事本、UltraEdit甚至CuteFTP的编辑器(象我这种懒人有时候就用那玩艺儿直接在线编辑,汗)。
而另一些较专业软件会提供高亮显示代码(前面提到的UltraEdit也具有此项功能)、代码提示、自动闭合标签等等功能,使用起来会大大提高工作效率。如DreamWeaver、MS Expression、EditPlus等等,这些编辑软件目前是绝对的主流,无论是初学者上手容易还是专业人士提高效率都是不错的选择。
再说说浏览器环境,目前一台机器同时装IE、Firefox、Opera、Safari已经不是难事,而IE7 Standalone和MultipleIE的问世也让IE7和低版本IE并存成为可能。推荐浏览器环境——本机安装IE7、FF、Opera、Safari,同时安装MultipleIE。从我个人的使用经验,IE7 Standalone存在一定的缺陷,有可能导致本机安装的IE6无法正常使用。
除了编辑器以外,还有就是必不可少的调试工具啦,首推当然是Firefox下的Firebug!IE下目前还没有与之相当的调试工具,比较好的有IE development toobar、IE Debugbar等等,不过和Firebug完全不是一个档次的东西,只能说勉强凑合用。
2、必备的HTML/XHTML基础
说到基础,其实正是我最想谈的。从论坛许多的帖子也可以看出来,大多数问题的产生是由于制作者本身基础的不牢固。而HTML/XHTML作为基础中的基础,更是许多人的薄弱环节。然而很多人还是喜欢一上来就问布局或者Hack这些技巧方面的问题,其实很多问题如果本人的基础牢固了,几乎不能被称之为问题。
web标准必备的HTML/XHTML基础,大致有几个方面:
每个标签的语义,这一点是网页标准的根本。而整个网页标准化几乎都是围绕着这一点而来的,明确了语义,才能选择合适的标签;明确了语义,才能构建可读性良好的结构。例如就是网站最高等级的标题,它不应该放在层级之下;例如 和,主要用于表单元素分组,不应该因为它那个漂亮的边框就用来表现新闻列表。 每个标签的初始样式,现在有很多重置标签样式就是针对这一点,因为每个标签在不同浏览器下的初始样式是不同的,而重置样式是为了更好地实现网页兼容性。从我个人的角度来说,不推荐初学者一上来就了解如何重置样式,而应该从了解标签的初始样式入手,先了解了这些,才能明白每一行重置样式的代码的真正含义。 标签的正确嵌套规则,同时还必须了解的是哪些标签属于块元素,而哪些属于行内元素。这是即使是高手也会经常忽略的方面,例如本人(^_^)。今天看到 这个帖子 的时候,才意识到,原来之前对dt、dd的嵌套规则理解有误,二者不能一视同仁。HTML/XHTML的嵌套规则并不算简单,常用的标签不过三十个上下,就有大约二十种不同的嵌套规则,稍不留神就会出错。虽然不严格遵循并不会影响页面的表现,但养成一个良好的习惯是很重要的,它往往能决定你在这条路上可以走多远。 标签的属性。这个又要分为两方面,一是符合标准的常用属性及对应的值,例如的summary属性、的scope属性、的for属性等等;二是标准强制要求的属性,例如图片的alt属性、form的action属性、textfield的col属性和row属性等等。 HTML/XHTML基础,虽然可以分开成多个方面讲,但实际关于它们的知识往往是综合在一起的,大多数相关的手册几乎都有详尽的介绍。对于这方面知识的学习,除了看相关手册外,多把自己的网页拿去w3c做校验也是不错的方法。
3、必须了解的CSS知识
CSS是标准化最吸引人的地方,也是时下讨论最多的话题,市面上的相关书籍也在web标准类里占据压倒性的比重,甚至有些人(包括一些用人单位)认为CSS就是网页标准。这种过于夸大CSS作用的观点固然是错误的,但CSS对于网页标准的重要性却也可见一斑。
CSS相关的知识、技巧很多,从知识的必备性方面来讲,以下几个方面是我认为最重要的:
布局。布局是表现层技术的基础,任何表现层的东西都是基于布局之上的。利用CSS布局的方法有很多种,例如float、绝对定位、负margin等等。每一种布局都有着各自的优势和局限性,从适性最广来讲显然是float最佳,也最为常用,但清除浮动往往是让人头疼的问题。绝对定位的网页抗压性好,但自由度低,而且渲染效率最差。负margin是最不破坏文档流的办法,但在对负值支持不佳的IE下往往会有灵异表现。关于布局方面的知识,建议看一下webflash的《彻底弄懂CSS盒子模式》系列文章,个人认为相关知识的文章尚无出其右者。 IE下的Haslayout渲染模式。其实hack是许多标准工程师所深恶痛绝的东西,但在浏览器兼容性要求越来越高的今天,hack却往往是一种无奈之举。而深入了解IE的Haslayout渲染模式,就会明白许多hack的来由,以及许多兼容性问题的产生之源。推荐阅读——译文On having layout。然而HasLayout问题之多,绝非一两篇文章所能概括,通过阅读文章,了解其中的原理,再举一反三,很多问题就会迎刃而解了。 符合标准的CSS规则。关于这一点,我可以不负责任地说,数以千万计的网站,其CSS完全符合标准的,所占比重不会超过1%。这并不是一个悲观的估计,即使是w3c推荐的一些网站,例如ESPN,他们的CSS也时常会通不过校验。CSS的许多规则的确令CSSer们非常不适,例如background和color,这两个属性绝大多数人都是分开来使用的,而w3c标准却规定两者必须“生则同生,死则同死”。还有就是各个浏览器的专有属性,在实现一些效果时是最简单有效的。这种时候我们往往会选择放弃标准,但暂时的放弃不意味着无视。今天知道我们哪些行为是错误的,以及为什么要用错误的方法,明天改正起来就不会太难。 提高网站性能的技巧,如有助于SEO的以图代字、用尽量少和小容量的图片实现圆角表格、用background-position实现图片切换以提高渲染效率等等。从对网站的帮助角度来看,这些技巧远比浏览器hack更值得掌握。 了解一点js知识。这个和CSS关系不是那么密切,但经常看到很多人钻牛角尖,用js可以非常简单实现的效果,非要用CSS去勉强实现。例如将子菜单放在链接里,通过:hover触发。又比如多列等高布局的实现。这已经是行为层的范畴了,为什么还非要用表现层来实现呢?当然这里并不是说所有CSS不容易实现的都往js里扔,而是要了解一下双方的技术特点,合理地选用最佳方案。 4、必备的网站样式管理技巧
规范化的命名与合理的代码重用性,也就是ID和class。对不起,这里又要老生常谈一下,因为昨天刚刚又看到一个通篇没有用一个ID的网站。ID和class是属于结构层的,不过CSS的调用却几乎都要通过ID和class来实现。但是,ID和class不仅仅是为了调用CSS样式而存在的。恰恰相反,是良好的ID和class构建的结构给了CSS大展身手的舞台。搞反了彼此关系,其实还是表现主导结构的思路,也就和满屏幕的table没有本质区别。理清了ID、class和CSS的关系,再来谈命名,命名其实只有一个基本原则,就是结构化。当然,在结构化之余,body、框架、模块之间的命名如能以某种形式加以区别(我个人习惯是加不同前缀),会让代码更加清晰。 样式文件的管理,也就是如何存储网站的样式文件。如果是一个很小的网站,把所有样式存在一个文件中也是没有问题的。但大网站的CSS往往几十上百k,全部存在一个文件里不但影响网页加载,也不利于修改维护。如何分割CSS,需要事先做好规划,无论是按栏目按功能还是按层级,要根据自己网站的特点。
推荐阅读
本文详细介绍了如何使用机器学习和深度学习技术对垃圾邮件和短信进行分类。内容涵盖从数据集介绍、预处理、特征提取到模型训练与评估的完整流程,并提供了具体的代码示例和实验结果。 ...
[详细]
蜡笔小新 2024-12-25 17:38:50
本文介绍如何在现有网络中部署基于Linux系统的透明防火墙(网桥模式),以实现灵活的时间段控制、流量限制等功能。通过详细的步骤和配置说明,确保内部网络的安全性和稳定性。 ...
[详细]
蜡笔小新 2024-12-25 13:17:38
随着毕业季的到来,许多即将毕业的学生开始撰写学位论文。本文介绍了使用LaTeX排版学位论文的方法,特别是针对中国科学院大学研究生学位论文撰写规范指导意见的最新要求。LaTeX以其精确的控制和美观的排版效果成为许多学者的首选。 ...
[详细]
蜡笔小新 2024-12-22 21:21:03
本文详细介绍了如何在Ubuntu 16.04系统上配置Jenkins、Ant和TestNG的集成开发环境,涵盖从安装到配置的具体步骤,并提供了创建Windows Slave节点及项目构建的指南。 ...
[详细]
蜡笔小新 2024-12-20 16:50:58
Google排名优化-面向Google(Search Engine Friendly)的URL设计 ...
[详细]
蜡笔小新 2024-12-19 16:16:50
本文详细介绍了中央电视台电影频道的节目预告,并通过专业工具分析了其加载方式,确保用户能够获取最准确的电视节目信息。 ...
[详细]
蜡笔小新 2024-12-25 21:01:14
本题探讨如何通过最大流算法解决农场排水系统的设计问题。题目要求计算从水源点到汇合点的最大水流速率,使用经典的EK(Edmonds-Karp)和Dinic算法进行求解。 ...
[详细]
蜡笔小新 2024-12-25 17:47:23
本文详细介绍了 Apache Shiro,一个强大且灵活的开源安全框架。Shiro 专注于简化身份验证、授权、会话管理和加密等复杂的安全操作,使开发者能够更轻松地保护应用程序。其核心目标是提供易于使用和理解的API,同时确保高度的安全性和灵活性。 ...
[详细]
蜡笔小新 2024-12-25 16:03:57
本文介绍如何使用微软的 Visual Studio Online(VSO)创建和管理开发项目。作为一款基于云计算的开发平台,VSO 提供了丰富的工具和服务,简化了项目的配置和部署流程。 ...
[详细]
蜡笔小新 2024-12-24 14:27:35
本文详细探讨了HTML表单中GET和POST请求的区别,包括它们的工作原理、数据传输方式、安全性及适用场景。同时,通过实例展示了如何在Servlet中处理这两种请求。 ...
[详细]
蜡笔小新 2024-12-23 18:09:59
本文详细介绍了如何将Struts和Spring两个流行的Java Web开发框架进行整合,涵盖从环境配置到代码实现的具体步骤。 ...
[详细]
蜡笔小新 2024-12-23 17:46:59
在编译BSP包过程中,遇到了一个与 'gets' 函数相关的编译错误。该问题通常发生在较新的编译环境中,由于 'gets' 函数已被弃用并视为安全漏洞。本文将详细介绍如何通过修改源代码和配置文件来解决这一问题。 ...
[详细]
蜡笔小新 2024-12-21 11:21:05
优化后的摘要:本文详细分析了当前面临的挑战和机遇,结合具体实例探讨了如何通过创新和改革来推动长期可持续发展。文中还介绍了多种可行的解决方案,并强调了在不同阶段实施这些方案的重要性。 ...
[详细]
蜡笔小新 2024-12-20 17:49:13
本文介绍如何配置SecureCRT以正确显示Linux终端的颜色,并解决中文显示问题。通过简单的步骤设置,可以显著提升使用体验。 ...
[详细]
蜡笔小新 2024-12-19 18:30:14
在Java应用程序开发过程中,FTP协议被广泛用于文件的上传和下载操作。本文通过Jakarta Commons Net库中的FTPClient类,详细介绍如何实现文件的上传和下载功能。 ...
[详细]
蜡笔小新 2024-12-18 13:18:04