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 が Yahoo によって開発された場合、レンダリング エンジンの違いをフレームワークに組み込んで、これが起こらないようにしたと思います。