【发布时间】:2012-02-08 04:09:42
【问题描述】:
(如果在其他地方回答了这个问题,请提前道歉。我环顾四周,找不到任何似乎适用的东西。)
我有一个绝对和相对定位的布局,让 div 可以坐在适当的位置,这几乎可以工作。
http://jsfiddle.net/dex3703/TZzKN/
#centercontainer(红色)旨在让#mainsection(橙色)位于所有其他内容中。我有我认为应该工作的绝对和相对定位,但我有这些问题:
- #mainsection 的底部超出 #centercontainer 约 20 像素。
- bottom、left、right、top 没有效果。使用 bottom: 20px 将底部向上抬起不起作用。
- 如果我在#mainsection 上没有高度:100%——我觉得这是错误的——它和里面的 div 没有高度!在#mainsection 的顶部只能看到一小部分#contentsection。
我只对这个在 Chrome 和 IE9 中的工作感兴趣。希望这会让事情变得更容易。
我确定这是一些菜鸟问题,所以提前表示感谢。谢谢。
【问题讨论】:
-
如果我理解你想要做什么,那么你就会理解
relative和absolute的作用相反。您为容器提供相对定位,以便子项可以绝对定位在其中(否则绝对定位会“冒泡”,直到找到有效的容器,通常是页面本身)。 -
值得一提的是,简单地翻转两种定位类型并不能解决问题;它会改变布局模型,你基本上需要重写。 ;-) 我根本不相信你需要绝对定位。
-
@GregPettit - 感谢您的解释。 HTML/CSS 布局让我感到莫名其妙,我仍然在犯这些错误。 flexbox 要容易得多,但我想要一些可以在较旧的 IE 浏览器上运行的东西。你是说我不需要对整个布局进行绝对定位?
-
差不多。有了布局,总有几十种方法可以给猫剥皮。当然,有很多方法可以在不使用绝对定位的情况下做你想做的事情。我认为绝对定位是有时间和地点的,但通常没有它你会有更灵活的布局。
标签: html css layout css-position