CSSグリッドレイアウトを再作成しようとしています。各クラス名に対してgrid-area
を宣言すると、グリッドはgrid-area: aside;
とgrid-area: main;
の適切な場所に適切にレンダリングしたくないようです。これら2つが他の要素の中にネストされているため、これが原因であると思われますか?ネストされたグリッド領域が正しく整列しない
望ましい結果:https://codepen.io/chrisburton/full/YVrqRr/
実際の結果:https://codepen.io/chrisburton/pen/eWqJRQ
CSS:
.container {
display: grid;
grid-template-areas: "nav nav"
"aside main"
"foot foot"
"footer footer";
grid-template-columns: 18rem 1fr;
}
.nav {
grid-area: nav;
background: #FFAAAA;
}
.aside {
grid-area: aside;
background: #D46A6A;
}
.main {
grid-area: main;
background: #AA3939;
}
.article-footer {
grid-area: foot;
background: #9A3939;
}
.footer {
grid-area: footer;
background: #801515;
}
もっと良いブラウザサポートを得るには、代わりにFlexboxを使うことができます。興味がありますか? – LGSon
ここにFlexboxを使用したサンプルがありますが、それが有用かどうか私に教えてください。私は答えを投稿します。 https://jsfiddle.net/m315vq21/ – LGSon
私の場合ブラウザサポートは重要ではありません。私は、問題は 'display:grid'は直接の子孫にしか作用しないと思います。したがって、私の場合、最初の 'article'要素に追加のグリッドを明示的に宣言する必要があります。 –