CSS 边距错误(仅在 IE 中?)

CSS bug with margin (only in IE?)

我有点挂在那里 CSS problem/error,这似乎只发生 在 Internet Explorer 中。至少,我在 Firefox、Safari 和 Opera 中看不到它 现在。我使用 IE 11 进行测试。

错误:

我已经将网站content/stage设置为顶部留有2%左右的边距,这 工作正常,但只要你将鼠标悬停在第一个导航上 点"people"(里面有个下拉菜单),主navigation/complete阶段刚刚 直接跳到顶部,不留任何边距。

如果单击第二个点 "journal",也会发生这种情况。在那里它也 不遵守设定的保证金。

在主导航的其他点上,边距保持不变。好吧,直到你 当然,再次将鼠标悬停在第一个点 "people" 上。

网站:

goo.gl/9YMkka

代码:

  html {
    margin: 0;
    overflow-y: scroll;
}
body {
    margin: 0;
    background: url(random_img.php) no-repeat top left fixed;
    -webkit-background-size: cover;
    -moz-background-size: cover;
    -o-background-size: cover;
    background-size: cover;
    background-attachment: fixed;
    font-size: 1rem;
    font-family: 'PT Sans Narrow', Helvetica, Roboto, Arial, sans-serif;
    height: 100%;
}
#stage {
    margin: 1.5% auto 0 auto;
    padding: 0;
    min-height: 100%;
    max-width: 58.75rem;
    width: 100%;
    min-width: 20rem;
}
#obenlinks {
    margin: 0 0.2rem 0 0;
    line-height: 3.4rem;
    float: left;
}
#obenlinks a {
    display: block;
    line-height: 3.4rem;
    font-size: 1rem;
    color: #fff;
    text-decoration: none;
    background: rgba(210, 21, 21, .8);
    margin: 0;
    padding: 0 1.1rem;
    font-family: Dosis, Helvetica, Arial, sans-serif;
    font-weight: normal;
}
#obenlinks a:visited {
    color: #fff;
    text-decoration: none;
    background: rgba(210, 21, 21, .8);
    margin: 0;
    padding: 0 1.1rem;
}
#obenlinks a:hover {
    color: #eee;
    text-decoration: none;
    background: rgba(210, 21, 21, .99);
}
#obenlinks a:active {
    color: #fff;
    text-decoration: none;
    background: rgba(210, 21, 21, .8);
}
#obenmitte {
    margin: 0 0 0 0;
    background: rgba(255, 255, 255, .7);
    line-height: 3.4rem;
    overflow: hidden;
}
#obenrechts {
    float: right;
    margin: 0 0 0 0;
    line-height: 3.4rem;
}
#inhalt {
    background: rgba(255, 255, 255, .8);
    padding: 1rem 1.5rem;
    margin: 0;
}
#inhaltblog {
    background: rgba(255, 255, 255, .8);
    padding: 2.65rem 2rem;
    margin: 0;
}

@media screen and (min-width: 800px) {
#nav {
    display: block;
    float: left;
    margin: 0 auto;
    width: 100%;
}
#nav ul, div.menu ul {
    list-style: none;
    margin: 0;
    padding: 0;
}
#nav li, div.menu li {
    float: left;
    position: relative;
}
#nav ul ul {
    display: none;
    position: absolute;
    left: 0;
    float: left;
    width: auto;
    z-index: 99999;
}
#nav ul.sub-menu {
    width: 100%;
}
#nav ul.sub-menu li {
    float: none;
    display: block;
}
#nav a {
    color: #333;
    display: block;
    padding: 0 1.1rem;
    text-decoration: none;
    font-weight: normal;
    background: rgba(255, 255, 255, .7);
    margin: 0 0 0 0.2rem;
    font-family: Dosis, Helvetica, Arial, sans-serif;
    font-size: 1rem;
}
#nav ul li:hover > ul {
    display: block;
}
#nav li:hover > a, #nav ul ul:hover > a {
    color: #bbb;
    background: rgba(255, 255, 255, .95);
}
#nav ul ul a {
    background: rgba(255, 255, 255, .7);
    text-align: center;
    line-height: 1rem;
    padding: 10px 10px;
    height: auto;
    margin: 2px 0 0 0.2rem;
}
#nav ul li.current_page_item > a, #nav ul li.current-menu-ancestor > a, #nav ul li.current-menu-item > a, #nav ul li.current-menu-parent > a {
    background: rgba(255, 255, 255, .99);
}
}

伙计们,非常感谢。我希望,你能看到问题甚至解决方案。 :)

需要给根元素一个最小高度,否则主体的 100% 高度和容器元素的 1.5% 上边距不清楚。只需应用以下内容:

html { min-height: 100% }

我在 F12 开发人员工具和通过 Fiddler 的 HTTP 响应中都添加了这条规则,并确认在这两种情况下它都会在 Internet Explorer 11 中修复布局。

此问题似乎仅限于 IE 11。经过测试 http://remote.modern.ie,我们的团队似乎已经解决了未来版本的 Internet Explorer 的问题。