我正在尝试使用PureCSS创建一个网格,并发现了一个我不理解的行为。我希望网格的左侧部分占据页面的1/3,右侧是剩余的2/3:
# index.html
<!doctype html>
<html lang="en">
<head>
<meta charset="utf-8">
<meta name="viewport" content="width=device-width, initial-scale=1.0">
<title>Test PureCSS</title>
<link rel="stylesheet" href="http://yui-s.yahooapis.com/pure/0.6.0/pure-min.css">
<link rel="stylesheet" href="http://yui-s.yahooapis.com/pure/0.6.0/grids-responsive-min.css">
<link rel="stylesheet" href="css/base.css">
</head>
<body>
<div class="header">
<div class="home-menu pure-menu pure-menu-horizontal">
<a class="pure-menu-heading" href="#">Test Page</a>
<ul class="pure-menu-list">
<li class="pure-menu-item pure-menu-selected"><a href="#" class="pure-menu-link">Home</a></li>
<li class="pure-menu-item"><a href="#" class="pure-menu-link">Tour</a></li>
<li class="pure-menu-item"><a href="#" class="pure-menu-link">Sign Up</a></li>
</ul>
</div>
</div>
<div class="pure-g">
<div class="l-box-lrg pure-u-1 pure-u-md-1-3">
<div class="content-wrapper">
<div class="content">
1-3
</div>
</div>
</div>
<div class="l-box-lrg pure-u-1 pure-u-md-2-3">
<div class="content-wrapper">
<div class="content">
2-3
</div>
</div>
</div>
</div>
</body>
</html>
这是CSS:
# base.css
* {
-webkit-box-sizing: border-box;
-moz-box-sizing: border-box;
box-sizing: border-box;
}
.home-menu {
padding: 0.5em;
text-align: center;
box-shadow: 0 1px 1px rgba(0,0,0, 0.10);
}
.l-box-lrg {
padding: 2em;
border-bottom: 1px solid rgba(0,0,0,0.1);
}
.content-wrapper {
/* These styles are required for the "scroll-over" effect */
position: absolute;
top: 87%;
width: 100%;
min-height: 12%;
z-index: 2;
background: white;
}
@media (min-width: 48em) {
.content {
padding: 1em;
}
}
在使用Blink的Chrome中,此页面按预期呈现。但是在基于Gecko的Firefox中,左边的1-3 div被堆叠在右边2-3 div的顶部。在过去,像这样的问题是由于在div的末尾有一个空格。但是,我检查了我的代码,它没有任何额外的空格。我在某处读到了这些渲染引擎如何处理display:block
与display:inline-block
的不同,所以可能与它有关。但我认为,如果PureCSS是由雅虎开发的,那么他们会将任何渲染引擎的差异考虑到他们的框架中,这样就不会发生这种情况。
答案 0 :(得分:0)
最有可能是因为用户代理样式表尝试并检查主体是否没有应用填充或边距