html - 最近的 Chrome 更新破坏了按钮布局

标签 html css google-chrome

就在今天,Google 在 Chrome 中所做的任何更改都会导致它错误地显示一系列向右浮动的按钮。

注意:页面内容是通过 AJAX 动态加载的。

之前:

今天:

这就是它变得奇怪的地方。这些按钮包含在仅应用了 float: right;div 中(按钮是 display:inline-block)。我尝试在检查器中将 div 更改为 span 。这解决了问题,所以我尝试在我的代码中用 span 替换 div 。但是,当我刷新页面时,问题仍然存在。我进入检查器,将容器改回 div,这再次解决了问题。但是,显然,在我的实际代码中将其改回 div 并刷新页面导致问题再次出现。

仅将容器从 div 更改为 span 或从 span 更改为 div 在检查器中解决了这个问题。

此外,当页面首次加载时,按钮似乎在正确的位置,但在它们被弄乱之前会短暂闪烁一秒钟。

我不确定这是最新版本的 Chrome(我使用的是版本 31.0.1650.57 m)中的错误还是其他错误。我不确定解决此问题的最佳方法是什么。

这个问题在 Firefox 或 IE 中不存在,只有 Chrome 存在,而且在今天之前不会存在。

一些相关的 HTML:

<div class='right'>
  <div class='button'>Button ...</div>
  <div class='button'>Turn Away</div>
  <div class='button'>More button! ...</div>
  <div class='button'>About</div>
  <div class='button'>Logout</div>
</div>

相关 CSS:

.right {
  float: right;
}
.button {
  display: inline-block;
}

http://fiddle.jshell.net/83cLt/ (注意:即使复制我所有的 HTML 和 CSS,我也无法在 JSFiddle 上重现错误)

更新

我找到了问题的根源。带有“...”的按钮是具有动态创建的关联下拉菜单的按钮。这个下拉菜单的形式是在按钮后添加一个 div (button, div.dropdown, button, div.dropdown, button, button)。此 div 通过 0max-height 隐藏。出于某种原因,在 Chrome 中,如果动态添加高度为 0 的元素(即使它们是 inline-block),它们现在无法正确加载。为了解决这个问题,我在 div.dropdown 中添加了一个 display:none 并在显示或不显示下拉列表时来回更改它。

最佳答案

您可能需要注释掉 div 之间的空白。

<div class='right'>
  <div class='button'>Button ...</div><!--
  --><div class='button'>Turn Away</div><!--
  --><div class='button'>More button! ...</div>
</div>

关于html - 最近的 Chrome 更新破坏了按钮布局,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/20082887/

相关文章:

javascript - 复选框更改事件触发两次

javascript - 是否可以在页面加载时调用函数

google-chrome - 如何强制从 Chrome 应用模式打开的链接保持在应用模式

html - css 将(z-index)元素定位在元素后面

html - CSS 盒子问题

javascript - JQuery datepicker 月份下拉边框在 firefox 中显示不正确

html - 将时事通讯表格固定在背景图像上?

javascript - 浏览器中的 CSS 错误 : 'Unknown property name' when using pseudo :after

javascript - chrome.idle 在 chrome 扩展中未定义

javascript - 为什么 Webgl 3D 无法在 Chrome 中运行?