css - Chrome : overflow:auto + margin:auto fails to layout correctly sometimes

标签 css google-chrome webkit css-float overflow

我正在尝试布局一个页面,该页面具有我希望在新行上居中的 anchor 元素。但是这些 block 在 <p> 内 float 图像旁边的元素。

右: http://test.sunnysidemarket.ca/right.jpg

错误: http://test.sunnysidemarket.ca/wrong.jpg

所以基本上我有:

HTML:

<div class="content">
    <div>
        <img src="..." width="276" height="207" />
    </div>
    <div class="body">
          <p>
            ...
            <a class="mediaset" href="...">Link</a>
        </p>
    </div>
</div>

CSS:

.content img {
    float: right;
}

a.mediaset {
    margin: 0 auto;
    width: 220px;
    display: block;
    overflow: auto;
}

或者您可以在 jsfiddle 中看到:http://jsfiddle.net/CVkFw/

问题是间歇性的,有时会发生,有时不会。在我看来,这是 chrome 中的一个错误,其中计算了溢出和边距属性,但是当加载 float 内容时,有时浏览器不会再次布局元素。

有多种方法可以使用 jQuery 和修改我的 HTML 来解决这个问题,但如果可能的话,我真的很想用 CSS 来解决这个问题。

最佳答案

我最好的猜测是这种不稳定的行为是由 global.styles.css 中应用的 overflow: visible 引起的。问题:

.node-article .field-name-body,
.node-synced-facebook-content .field-name-body {
    overflow: visible;
}

我提出这个建议是因为当我为 overflow: hidden 添加这个 CSS 覆盖时,该组件似乎加载得“更稳固”。修复:

.node-article .field-name-body,
.node-synced-facebook-content .field-name-body {
    overflow: hidden;
}

选择器本身可能需要根据它要影响的内容进行调整。 (我显然不太熟悉您页面的 CSS 代码。)但希望这能为您指明正确的方向!

关于css - Chrome : overflow:auto + margin:auto fails to layout correctly sometimes,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/14784845/

相关文章:

html - 即使边距和填充为零,div 仍然有空格

javascript - 如何从 <function scope >'s Closure in Chrome Developer tool' s Watch 面板访问值?

css - 谷歌浏览器奇怪的 Css3 过渡错误

javascript - 在 QtWebkit 中禁用拖放

javascript - Windows 8 上的 Google Chrome 不理解 javascript cookie 过期时间中的时间格式

html - 3d css 动画 - webkit-transform 的性能出乎意料地迟缓,即使使用快速显卡也是如此

javascript - 删除 ExtJs 4 默认类

html - 内容显示滚动条但不可滚动

html - 如何更改 flex 元素的文本选择顺序?

html - 将显示表 : working on Firefox, 的 4 个单元格集中在一起在 Chrome 上不起作用