【问题标题】:CSS behaving differently in IE and ChromeCSS 在 IE 和 Chrome 中的行为不同
【发布时间】:2015-12-26 11:20:37
【问题描述】:

我正在尝试创建一个小的导航菜单,但是 IE 似乎以不同的方式呈现它,完全把它搞砸了。

这是我正在使用的 html/css(jsfiddle 正确呈现它,chrome 也是如此):

http://jsfiddle.net/Seytonic/gmp975sm

然而 IE 是这样渲染的(我省略了 jsfiddle 中的引导程序):

编辑:我使用的是 IE 11

【问题讨论】:

  • 仅供参考,您在小提琴中缺少</div> 之前的</body>
  • 谢谢,复制的时候一定漏掉了。

标签: html css twitter-bootstrap google-chrome internet-explorer


【解决方案1】:

这就是为什么在浮动元素上声明宽度很重要的原因之一。否则,框大小可能会在不同浏览器中呈现不同。

尝试将width: 330px 添加到#navigation 容器中。

Revised Demo 1

330px 只是一个例子。您也可以使用相对单位,例如百分比或 em。

同样,为避免不可预知的浏览器行为,还要为两个浮动子元素指定宽度:

#navbar li { width: 49.5%; }

然后调整顶行方框之间的间距:

#projects { margin-left: .5%; }
#about { margin-right: .5%; }

最后,width 默认只包含content box。让它也考虑到 paddingborderbox-sizing: border-box:

html {  box-sizing: border-box; }
*, *:before, *:after { box-sizing: inherit;}

Revised Demo 2

【讨论】:

  • 如果我这样做,底部的电子邮件容器没有在左侧与上面的框齐平,差异可能不会在 jsfiddle 上显示出来,但在 chrome 和 IE 中尝试它是非常明显的。
  • 我在 Chrome、FF 和 IE11 上进行了测试。一切都排好了。如果您指定容器的宽度 (#navigation),则内部的浮动元素将遵循边界。如果没有明确的宽度,浏览器可能会以不同的方式处理大小(如您所见)。
  • 在 chrome 中我得到了这个:prntscr.com/9iknxa 缩放了一点我得到了这个:prntscr.com/9iko3u
  • 其实应该是和bootstrap有关,如果我去掉bootstrap的引用就更对齐了,不过还是有一点差距prntscr.com/9ikozt
  • 您在哪些浏览器中看到浮动时不同的大小?那不应该发生!并且行为在规范中定义。
猜你喜欢
  • 1970-01-01
  • 1970-01-01
  • 2014-01-31
  • 2023-03-17
  • 2014-12-05
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
相关资源
最近更新 更多