HTML and CSS
最近一直在给同事面试一个HTML/CSS方面的职位。说实在的,我对HTML和CSS一直停留在“可以写,但复杂的不会”的阶段,就像我的Blog一样,一直就是麻烦不断。
今天更是这样,在更新了几个Widget之后,突然间发现第二侧边栏被移动到第一侧边栏下面,底部的Recent Post和Blog roll也都窜到右边去了。很明显,某个地方的<div>不匹配。这种情况实际上多发生于我的Text widget,因为里面的HTML代码基本上都是我写的。
这次其实也不例外,最终发现在About ME中的<div>不匹配。这倒不是什么大问题,真正的大问题是我几乎删除了所有的widget才最终找到问题的根源。
之所以会联想到给同事面试的事儿,是因为我的面试几乎都会问一道题目:table layout和div layout有什么区别。当然答案是五花八门的。想当初我在上世纪90年代(别紧张,其实就是上世纪的最后一年)的时候,网页还在使用table做布局,之后才逐渐变味div布局。
今天面试的candidate是这样回答我的:两种布局方式没什么区别。div更倾向标准一些,但table比较不容易把页面变得很混乱。
我不评论他的答案,但他说的table比较不容易吧页面变得很混乱,确实是真的。比如这次我的blog布局中,就因为少写了一个</div>,结果导致页面乱七八糟的。其实table也存在同样的问题,但好歹人家有th、tr、td,一个一个匹配一下就好了。<div>不同,所有的结束标签都是</div>,弄得你也分不清哪个对着哪个。
当然,<div>的优点是不言而喻的,当你的网页更改布局的时候,<div>的修改成本是要远远低于<table>的。另外,对于像我的blog那样widget based的页面,<div>也更容易一些。
———- 分割线 ———-
我写这篇问题,倒不是为了评论table和div哪个好,哪个更标准,只是在这里发发牢骚,说说我碰到的问题。当然,对于那些直接说我“啥都不懂呢,还写HTML呢啊”,这种评论必然会存在。我将完全忽视。




