( CSS Gridの使用)
5772 ワード
この投稿は当初公表されたsilvestar.codes .
この解決策は私の昨年の記事のフォローアップポストです"Using CSS Grid where appropriate" . 目標は、アイテムの未知数とナビゲーションのためのソリューションを見つけることです.
回収する
CSSグリッドでのナビゲーションの作成は間違いなく最良の解決策です.しかし、CSSグリッドを使いたいなら、2つのオプションが提案されました.
grid-auto-flow: row;
そして、各項目をグリッドに配置します..nav__item:nth-child(1) {
grid-area: 1 / 1 / 2 / 2;
}
.nav {
display: grid;
grid-auto-flow: row;
}
@media screen and (min-width: 320px) {
.nav {
grid-template-columns: repeat(4, auto);
grid-template-rows: repeat(2, auto);
}
}
両方の例では、厳密なグリッドを定義しています.https://codepen.io/CiTA/pen/dzogLV
新しい解決策
私は1年以上の間CSSグリッドを使用しています、そして、私は方法に沿って適切にその特徴を使う方法を学びました:
minmax()
function , auto-fit
keyword , grid-auto-flow
property , and 暗号
私は以前の解決策をフォークして、上記の機能を更新しました.ここで最終的な解決策です.
https://codepen.io/CiTA/pen/pOgGqv
.nav--grid2 {
display: grid;
grid-auto-flow: dense;
grid-template-columns: repeat(auto-fit, minmax(60px, auto));
justify-content: center;
}
このコードを分解しましょう.minmax ()
minmax()
関数は、最小値と最大値の範囲としてサイズを定義します.これは、列と行の動的なサイズを定義することができます.このプロパティを使用してナビゲーション項目の最小および最大幅を定義できます.この例では、以下のminmax定義を使用しています.
minmax(60px, auto)
私たちは、コラムが少なくとも60 px幅でなければならないと言います、そして、それは最大内容幅と同じくらい広いべきです.参照 auto
keyword 詳細はオートフィット
auto-fit
繰り返し数として使用する必要があります repeat()
function . それは、グリッドがアイテムが空であるように、できるだけ多くのアイテムを置くべきであると言います🤔).グリッドオートフロー
grid-auto-flow
アイテムを配置するためのグリッドアルゴリズムがどのように機能するかを制御するプロパティです.この例では、 dense
keyword . グリッドは大きなグリッドアイテムが発生したときに残される可能性のある穴を埋めるべきである.内容を正当化する
justify-content
property ボックスの内容を揃える.私たちはjustify-content: center
項目の内容を中央に揃える.ボーナス:いいえメディア質問
ご覧の通り、メディアクエリを使用していません.メディア・クエリーは役に立ちます、そして、それらなしで、そして、敏感なウェブデザインがありません、しかし、我々が1を使用せずに反応的なふるまいを構築することができるとき、それはとても満足していると感じます.
最後の思考
CSSグリッドは、まだナビゲーション要素に最適なアプローチではないかもしれませんが、動作します.常にあなたの問題を解決した場合でも、必ずCSSグリッドを使用してみてください.あなたが反逆者であるならば、この考えを無視して、それにもかかわらず、あなたのユーザーが幸せである限り、ウェブ解決を構築するとき、規則が全くありません.😎
Reference
この問題について(( CSS Gridの使用)), 我々は、より多くの情報をここで見つけました https://dev.to/starbist/using-css-grid-where-appropriate-revisited-473テキストは自由に共有またはコピーできます。ただし、このドキュメントのURLは参考URLとして残しておいてください。
Collection and Share based on the CC Protocol