前端开发,现实主义 vs 完美主义
作为有技术追求的人,往往很容易陷入完美主义的圈套,追求绝对的完美,越是深入,越是自我陶醉。
我也是个追求技术的人,也经常陷入这种圈套,写html绝对要求XHTML 1.0 Strict。所有非标准属性,不用。想尽办法解决。例如链接的打开新窗口 target,_blank,新窗口中打开,很常用的属性。不过不好意思,非标准属性。之前为了这问题,就折腾了下rel+Javascript的方法解决了。
另外一个是html里面的&符号,在XHTML 中,这类符号要求使用实体引用。&要改成&,相信这个&大家都知道,很常见,用来分割url上面的参数。之前为了不让我的html validate插件显示红叉,我写的每个html页面,上面的每一个&都会替换成&。
现在经历过这么多项目了,回头想想,有时也会自己暗笑下,有时候这样的坚持是不是显得有点小孩子气呢?
其实我想,什么地方该用什么东西,什么东西最合适,就是好的。拘泥于标准,作茧自缚,这就不太好了。标准的主要意义并不在你坚持的这些小小细节上面。或许你现在因为标准不用的东西,哪天就成了标准。
我现在做一些网站项目,会直接使用marquee来显示滚动的文字,很多人就说啦,marquee是早期IE私有的方法!不标准!浏览器不兼容!
嗯,是这样没错,marquee在safari下面确实不行,但是现在marquee在IE跟firefox,opera,chrome下运行都很良好。选择找个代码改改,或者直接造个轮子?嗯,满意了,这是完全标准的实现。但是无论时间效率还是成本,都远没有直接使用marquee好。它是浏览器原生的实现,不需要你再引入什么框架或者代码,无论性能还是易用性或者是外观表现,都会比自己写一个好。不标准?呵呵。
有些地方我会选择用表格来做布局。
精通div+css的人,往往对于任何用表格来布局的东西嗤之以鼻,坚持只在显示表格型数据的时候才用table,仿佛用了table就会被人瞧不起,是对自己的侮辱。哦,你精通div+css,怎么用表格来做布局?
这个问题其实挺早之前在我也在一些论坛或者群上跟一些人讨论过,我觉得,布局时候div+css,table兼用才是个最好的方式。
历史原因,早期的网页都是用table来布局的,所以,所有的浏览器对table的兼容性都做得非常好,可以说table做出来的界面的多浏览器兼容性最好。完美的前端开发,往往为了兼容多个浏览器投入了大量的时间,IE678,ff23,opera910还有safari,现在还有chrome。很多小地方的布局,用div+css往往需要大量的float跟clean,以及更多的宽度高度对齐的细节要处理,而且越小的地方,往往越容易出一些兼容性的问题。仔细思考一下,这些地方,你的html跟css,真的有比table有更好的维护性吗?
总结一下,所谓的技术与标准,都是为现实需求服务的,只要能实现需求,综合考虑时间效率与成本,都是可以拿来用的。就像伟大的邓小平理论说的,一些可以为社会主义发展做贡献的,都可以搞。
同意标题,但不完全同意内容,嘿嘿…
table布局不仅不标准,而且性能差,用之代码量也会变多,开发效率也没div快(除非网站的设计太简洁了),不好维护(想像一下改变某个列的宽度,做一个有圆角渐变的widget, etc.)。至于浏览器兼容性,用div的方法同样可以很轻松的兼容,除了IE6比较恶心一点。
P.S. 楼主为啥不把评论弄成最新的显示在下方的啊,要不然像现在这样,看到回复后还得往下滚动找答案,很累的啊。
@wenner 哦?不知道wenner兄有什么见解不妨说来听听
哦,你精通div+css,怎么用表格来做布局?
你确定你知道嘛叫布局?
@LiGht 我说的布局用table指的是一些较小的地方,局部的布局。div+css当然还是主要的布局手段。过多的table也不适合语义化与SEO。不过我觉得浏览器解析table的速度,这个已经不在考虑之列了。现代的电脑CPU已经很快了,浏览器渲染速度上不会有明显的差异。
可是浏览器解析table不是会更慢吗?我觉得可能的话,还是竟可能的使用DIV+CSS布局吧
@Allo 呵呵。现在也在逐渐走出这种怪圈,什么时候遵循标准 ,什么时候打破标准,都需要一个经验的积累过程。
标准是为了告诉你怎样做是好的,怎样做是不好的,单纯为了过W3C Valid或者为了炫耀技术而遵循标准没有任何意义。
一篇好的HTML,每一个元素都是有存在意义的,没有什么元素是专门为了布局或者为了通过W3C验证才去写的。
LZ应该多反思一下W3C标准的本质。