luckyyang / tcool

haoqicat.com 图cool
cool.haoqicat.com
5 stars 1 forks source link

float是魔鬼? #14

Closed luckyyang closed 11 years ago

luckyyang commented 11 years ago

标题党又来了。这几天看了几篇文章,写的不错:

http://www.zhangxinxu.com/wordpress/?p=583

http://www.zhangxinxu.com/wordpress/?p=594

http://www.zhangxinxu.com/wordpress/2010/11/%E6%8B%9C%E6%8B%9C%E4%BA%86%E6%B5%AE%E5%8A%A8%E5%B8%83%E5%B1%80-%E5%9F%BA%E4%BA%8Edisplayinline-block%E7%9A%84%E5%88%97%E8%A1%A8%E5%B8%83%E5%B1%80/

luckyyang commented 11 years ago

之前看了几篇老外写的文章也再说这个事

elsalong commented 11 years ago

我对FLOAT的各种特性一直都很感兴趣,而且也一直觉得自己还不能很好地掌握这个东西,但看了这个文章,感觉到作者确实像自己说的,个人感情取向占了太多比例,而没有真正地进行理性的思考。 就拿最明显的一点来说,其实CSS和HTML发展到今天,早已经到了这样一个程度:就是那些标签和属性,有很多都已经开发出了有别于它们最初的设定功能的其它功能,并不仅仅只有float这一个特例。 而我也不认为最初的设计者们当时会这么想:‘这个属性设计用来做这个,就必须只能用来做这个事’。我更倾向于认为,如果他们发现一个设计来做一件事的属性,顺带开发出了其它的功能,而且这个功能真的很好用的话,设计者们自己也会很惊喜。 所以CSS对我自己而言也是有感情色彩的,这点我不否认,就是因为对于每一件事,几乎都可以有各种不同的方法来实现它,这事才变得更有吸引力,更有趣。而我从来不认为我“必须”要使用哪个标签和属性来实现一个效果,而是我“选择了”用什么来实现它,有选择,我们就可以从一种条条框框中解脱出来,只考虑在功能得以实现的情况下,怎样才是对自己效率更高的做法。 所以,我不觉得FLOAT是“破坏”了什么,它只是用一种属性取代了元素的另一种属性,叫做”改变“更合适。而对元素被改变之后各种特性的研究,就是我们深入理解float的过程。而大多数人讨厌它,恐怕只是因为觉得去深入理解一个CSS属性让自己很头痛而已。 所以说到现在,我突然觉得,其实不是FLOAT是不是魔鬼的问题,而是在目前的状况下,是不是这个属性有点过时了而已,听人说过在IE6还横行的时代,并不是FLOAT除了文字环绕之外所有的功能都可以被别的方法替代的,所以它的流行自有其道理。 那么,在没有出现明显比使用FLOAT效率更高,更好掌握的属性和方法之前,为什么不让我们和对待其它属性一样平等对待float呢,它只是很多同类的选项其中一个而已。 人们会本能地害怕自己无法了解的东西,所以让我们正视自己吧,是因为我们很难了解它,而不是因为它是魔鬼。

elsalong commented 11 years ago

唉,刚刚写上面那些的时候还没看最后一个链接里的内容,现在看完了,我发现又想吐槽了

这篇东西搅起了我脑子里太多想法,貌似很难简单说清楚,所以现在我只想说一点,这个作者之所以会说出这些看似有理却完全经不起推敲的一堆东西,最大的原因,就是他在使用双重标准。

太明显了,对于float列表布局,一个简单的高度问题就成为该属性不可取的理由,而对于inline-block,一个小小的间距问题,就开始导致各种浏览器显示不一致的情况了,造成如此之多的思考和调试,他还是相当地乐于接受。这不是双重标准是什么?

对于自己情感上想接受的,就无条件接受,对于不喜欢的,哪怕明明有办法解决它出现的问题,而且这个办法不见得更麻烦,但对他来讲就是魔鬼,就是完全不可取。

我并不是想说float比inline-block更好或更适用,在我看来它们在不同的环境下各有各的可取之处,而作者在技术方面的讲解也能让我学到东西,我不是一个会因自己的情感喜好而逻辑混乱的人。

只是对于这种双重标准的思路,我已经不再想说什么,下次再见到,还是笑而不语好了。

happypeter commented 11 years ago

@elsalong Never know you know css so well, looking forward to your code.

elsalong commented 11 years ago

@happypeter 过奖了,“了解”是一种假象,呵呵。还在学习中,其实我对CSS了解得还很少,只是我觉得学习需要有一种开放的思路,初学者因为通常都是处于一种虚心学习的状态,所以更容易受前人所谓“经验”的影响,而不去分辨这些影响是好是坏,所以我觉得在学习新东西的时候努力保持独力思考的能力是非常必要的。

以上同样送给 @luckyyang

happypeter commented 11 years ago

Can't agree more!

luckyyang commented 11 years ago

谢谢,他的文章和你们说的都很好。