【问题标题】:CSS: Two column Div layout misaligns when Zoom changesCSS:缩放更改时两列 Div 布局未对齐
【发布时间】:2012-04-25 20:04:23
【问题描述】:

请参阅 jsFiddle http://jsfiddle.net/Lijo/ryDnn/1/ 。我有两列布局。它是基于 % 的布局——但定义了最小宽度。当我将(浏览器 IE8 的)缩放比例设为 75 % 或更低时,效果很好。当我将缩放设置为 85% 时,橙色框会下降。我们怎样才能克服这种错位呢?无论缩放/浏览器最小化/桌面分辨率如何,橙色框都应保持在正确的位置(如图所示)。它不应该下降。

jsFiddle 中的结果窗口:http://jsfiddle.net/Lijo/ryDnn/1/embedded/result/

另外,如果你能解释一下它背后的 CSS 理论,那就太好了。

注意:即使在浏览器最小化时也会观察到这种错位。

注意:测试时我的桌面配置为 1024 x 768。


即使从 leftNavContainer 和主容器中删除边距后,问题仍然存在。请看http://jsfiddle.net/Lijo/ryDnn/10/

【问题讨论】:

  • 你的容器太多了,你到底想要什么结果?
  • @TomWijsman 感谢您对此进行调查。在橙色框中,将添加更多内容。内容因页面而异;但大纲保持不变。无论缩放如何,橙色框都应保持在正确的位置(如图所示)。

标签: javascript html css


【解决方案1】:

为了允许舍入误差,取一个百分比。 15% for left 和 84% 应该可以工作。

但是,问题是你也在添加边距,这显然不会很好。

考虑首先让两个 div 使用 15%84%(或 85%,如果可行的话),然后使用这两个 div 作为包装器,在其中放置一个 div 并提供正确的边距。这样一来,您的边距就不会干扰width 的计算。

换句话说,边距不是 div 宽度的一部分

如有疑问,请广泛使用 Page/Web Inspector 以了解装箱模型...

【讨论】:

  • 请注意,还必须考虑边框。参见 W3C 关于盒子模型的解释:w3.org/TR/CSS2/box.html
  • 感谢您对此进行调查。我删除了边距。问题仍然存在jsfiddle.net/Lijo/ryDnn/10?你搞定了吗?
  • @Lijo:这次min-width 打扰了你,为我禁用了这些工作。
  • 谢谢你..这工作......jsfiddle.net/ryDnn/13。你能解释一下这背后的理论吗?
  • @Lijo:在 W3 标准文档中都有解释。请对您使用的 CSS 属性有一个基本的了解。你认为min-width 在较低分辨率下会做什么?确切地说,使两个框都变宽以适合您的浏览器宽度,因此将它们放在彼此下方,因为它们不适合。
【解决方案2】:

你的总宽度是 100% leftNavContainer 取的宽度是 25% 因为 margin-left-10px 和 width-15% ,mainContainer 也是一样的

如果您提供边距意味着减少与边距大小相关的宽度

mainContainer css

      #mainContainer {

                   width:75%; //(or) reduce your margin
                        }

       #leftNavContainer {

                   width:15%; //(or) reduce your margin
                   margin:5px;
                        }

【讨论】:

  • 你的答案是 15% for left 和 84% 。工作如何给我看例子
  • 谢谢。我删除了边距。问题仍然存在jsfiddle.net/Lijo/ryDnn/10吗?你搞定了吗?
  • jsfiddle 宽度小尝试浏览器
猜你喜欢
  • 2012-04-16
  • 2014-11-10
  • 1970-01-01
  • 2012-01-02
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 2014-08-29
相关资源
最近更新 更多