最近私はCSSグリッドで遊んできましたが、答えが見つからないことに気がつきました。たとえば、ページを2つの列に分割し、その下の行に別の列(両方の列にまたがる列)を配置するとします。モバイルでは、別のものの上に1つ積み重ねて、その後、特定のブレークポイントの後に上記のレイアウトに戻るようにしたいと思います。ここでマークアップは次のとおりです。モバイルでグリッドギャップが動作しないのはなぜですか?
HTML
<div class="grid">
<div class="upper">
<div class="a">A</div>
<div class="b">B</div>
</div>
<div class="lower">
<div class="c">C</div>
</div>
</div>
SCSSは
.upper, .lower {
display: grid;
}
.upper {
grid-template-columns: 1fr 1fr;
grid-template-rows: auto auto;
background-color:grey;
grid-gap:10px;
@media only screen and (max-width:800px) {
grid-template-columns: 1fr;
grid-template-rows: auto;
}
}
.lower {
grid-template-columns: 1fr;
grid-template-rows:auto;
background-color: green;
grid-gap:10px;
}
私は私が私のグリッドセクションの両方のためのgrid-gap
を定義したにも関わらず、携帯電話であることを気づきました、列のスタック時にモバイルでgrid-gap
は維持されません。下のフィドルでは、ウィンドウを小さくすると、列が1つ積み重なったときに、B
とC
の間のギャップが存在しないことがわかります。
希望私が意味を作ってるんだ:ここでフィドルです!
編集:FirefoxとChrome(グリッドをサポート)でのみこれをテストしています。
あなたは、ほとんどのブラウザは、まだCSSグリッドをサポートしていないことを知っていますか? ...デスクトップでは動作してもモバイルではない場合、モバイルブラウザではまだ正しく実装されていない可能性があります – LGSon
はい、私はChromeとFirefoxでテストしています。どちらもグリッドをサポートしています – zik