地球人.
我,身心相对理智,特此放弃了自己对CSS定位的理解.
关于CSS的在线资源很长,以解释"颜色"属性可以让你设置东西的"颜色".Unmöglish.
然后,如果你想要把东西给别的左侧(疯狂的想法,对吧?),所有你需要做的是将其设置为浮动到只要你设置了"相对"标志其父块左边这必须有一个祖父节点,其"绝对"标志设置为true,以便它相对于另一个可能包含或不包含任何内容,具有位置,大小或不具有的容器定位,具体取决于浏览器,其他东西的大小,可能还有月亮的阶段.(建议CSS专家不要认真对待上一段.我很确定有人会指出我的咆哮是无效的,或符合w3c标准 - 并且它只适用于IE6的瑞典测试版)
开玩笑,我正在寻找任何资源来解释CSS中布局背后所有疯狂的根本原因.从本质上讲,对于CSS来说,Crockford的文章对于Javascript来说是什么.
本着这种精神,让我指出,我不是在寻找像蓝图这样的CSS库或网格框架,也不是像小写这样的CSS扩展语言.我一直在使用它们来减轻我的痛苦,但我担心当他们说他们无法将自己的思想包裹在JS中的原型继承中时,就像告诉别人"只使用jQuery".
如果所有你能指出的是http://shop.oreilly.com/product/9781565926226.do,我想我会认为自己注定失败.
提前致谢.
编辑:我可能不应该谈论"定位"(感谢所有谁再次解释'位置:相对'并不意味着'相对于你的容器'和'位置:绝对'意味着相对于某些东西.我'从来没有如此接近用SO问题制作monty python脚本).我认为我的意思是一般的布局(定位+浮动+基线+所有将东西放在直线上所需的废话).
也请原谅咆哮的语调,我正试图将一些幽默倾注到沮丧中.如果可以的话,我会用禅技术冷静下来,但这只会让我想起 这个.
看来大多数其他人还没有完全理解您帖子的要点。我来给你分解一下:
CSS 定位很复杂,因为它是由许多不同群体在很长一段时间内设计的,具有不同的版本和遗留的兼容性问题。
最初的尝试是让事情变得简单。只需提供基本的样式即可。颜色、字体、大小、页码等。他们添加了浮动以提供基本的“剪切”功能,其中文本环绕图像。浮动并不打算像目前那样用作主要布局功能。
但人们对此并不满意。他们想要柱子、网格、盒子、阴影、圆角以及各种其他东西,这些东西是在不同阶段添加的。同时尝试保持与以前的不良实现的兼容性。
HTML 遭受了两个对立派别的争斗。一方面想要简单的(无论如何与现有的 SGML 相比)解决方案,另一方面想要丰富的应用程序。所以 CSS 有时具有这种精神分裂的性质。
更重要的是,功能被扩展以完成最初没有打算做的事情。这使得现有的实现都非常有问题。
那么这对你(一个普通人)来说意味着什么呢?这意味着你不得不处理其他人的脏衣服。这意味着您必须处理十年前的实施错误。这意味着您要么必须为不同的浏览器编写不同的 CSS,要么必须将自己限制在通用的“良好支持”功能集上,这意味着您无法充分利用最新的 CSS 功能(也无法使用那里的功能旨在为标准增添一些理智)。
在我看来,对于“普通人”来说,没有比这本书更好的书来理解 CSS 了:
http://www.amazon.com/Eric-Meyer-CSS-Mastering-Language/dp/073571245X
它简单、简洁,并以一种光鲜亮丽、“易于阅读”的格式为您提供真实世界的示例,并且缺少大部分令人讨厌的技术术语。它已经有 10 年历史了,并没有涵盖任何新内容,但它应该可以让您“了解”事物的工作方式。