【问题标题】:div and table siblings with similar CSS are positioned differently具有相似 CSS 的 div 和 table 兄弟的位置不同
【发布时间】:2011-08-04 06:02:38
【问题描述】:

我有一个table 和一个div,它们应该以相同的宽度和相同的左侧位置显示。

但是,桌子被什么东西推到了右边。它没有出现在 Firebug 中,我不知道是什么原因造成的。

我将附上 Firebug 控制台的图片,而不是在这里复制所有代码。

这是对齐的 div 应该如此

这是向右碰撞的表格:

如果这可能是一个问题,#content 的 CSS 是:

#content {
    margin-top: 0.5em;
}

.center {
    margin-left: auto;
    margin-right: auto;
}

div {
    position: relative;
}

#page 的 CSS 是:

#page {
    -moz-border-bottom-colors: none;
    -moz-border-image: none;
    -moz-border-left-colors: none;
    -moz-border-right-colors: none;
    -moz-border-top-colors: none;
    background-color: #FFFFFF;
    border-color: -moz-use-text-color #C5CAE8;
    border-left: 0.0625em solid #C5CAE8;
    border-right: 0.0625em solid #C5CAE8;
    border-style: none solid;
    border-width: medium 0.0625em;
    margin: auto;
    min-height: 30.5em;
    padding: 3em 0;
    width: 64em;
}

.clear {
    display: block;
}

div {
    position: relative;
}

如有需要,我可以为更多家长发布 CSS。

我复制了代码to this jsfiddle,问题很明显。

【问题讨论】:

  • @mu 太短 是的,我已经复制了所有的 HTML 和 CSS here 并显示错误。

标签: html css


【解决方案1】:

我认为您的问题是由于您的<div id="image"></div> 导致您的桌子向右推,因为 div 太高了。如果你把它变小或移除它,你的桌子就会一直向左移动。如果您随后从您的 table 样式中删除 position:relative,您将获得您想要的结果。

免责声明:仅在 Chrome 12 中测试 :)

【讨论】:

  • 这是对的。我一直想修复那个 div 高度;我知道它会回来咬我。嘎。谢谢。
【解决方案2】:

我在您的 jsfiddle.net 示例中看到了 Safari 中的问题。尝试将overflow: hidden 添加到

<div class="gutter message-box center w75 alert">

块。这使得&lt;div&gt; 和下面的&lt;table&gt; 为我排好队。但是这对不与标题对齐。但是,如果您从&lt;div&gt;&lt;table&gt; 中删除center 类,则一切都开始正常排列。我怀疑您遇到了浮动问题(因此使用了 overflow: hidden 技巧)和一些战斗边缘(杀死 center 已修复)的组合。

我仍然看到&lt;table&gt; 存在小宽度问题,但以上内容应该可以帮助您入门。

【讨论】:

  • 知道是什么原因造成的吗?我添加了.clear 以查看它做了什么,并且消息框的高度增加了一倍(并且也修复了偏移量)。知道这里发生了什么吗?
  • @rockerest:那里有很多不熟悉的 HTML 和 CSS,所以我猜测存在浮动问题,因为存在一个非常短的 &lt;div&gt;。删除center 也是另一个猜测。我是老派,我手工制作所有的 HTML 和 CSS,所以我通常知道我自己的东西到底发生了什么:)
  • 标题左对齐,正文内容居中。这本身就是一个把戏。在一个几乎相同的站点上,徽标位于标题栏 as with this question 下方。我删除了在 this 实现中防止它向左滑动的包装器上的边距,所以包装器只有margin: auto。对于它的价值,这也是手工编码的,我就是不知道是什么原因造成的。
  • @rockerest:你可以开始删除东西,直到问题消失。或者从无到有,不断添加直到出现。
  • +1 所有帮助的原因!我将答案切换到@joostschouten,因为这是我正在寻找的真正解决方案:) 感谢您的所有时间和知识。
猜你喜欢
  • 2015-05-08
  • 1970-01-01
  • 1970-01-01
  • 2021-09-29
  • 2019-11-01
  • 2023-03-29
  • 1970-01-01
  • 2011-02-12
  • 1970-01-01
相关资源
最近更新 更多