[解決済み】グリッドアイテムのコンテンツが展開されないようにする。
質問
TL;DR。
のようなものはないのでしょうか?
table-layout: fixed
CSSグリッドの場合
4x3の大きなグリッドで月、そこに7x6のグリッドを入れ子にして、年表示のカレンダーを作ろうとしました。
カレンダーはページいっぱいに表示される必要があるため、年グリッドコンテナの幅と高さはそれぞれ100%になります。
.year-grid {
width: 100%;
height: 100%;
display: grid;
grid-template: repeat(3, 1fr) / repeat(4, 1fr);
}
.month-grid {
display: grid;
grid-template: repeat(6, 1fr) / repeat(7, 1fr);
}
以下は動作例です。 https://codepen.io/loilo/full/ryXLpO/
わかりやすくするために、そのペンの中のすべての月は31日で、月曜日から始まります。
また、問題を実証するために、とんでもなく小さなフォントサイズを選びました。
グリッドアイテム(=曜日セル)は、ページ上に数百個あるので、かなり凝縮されています。そして、日数ラベルが大きくなりすぎると(左上のボタンでペンのフォントサイズを自由に変更できます)、グリッドのサイズが大きくなり、ページの本文サイズを超えてしまうのです。
この動作を防ぐ方法はありますか?
年グリッドは最初、幅と高さが100%になるように宣言したので、そこから始めるべきかもしれませんが、そのニーズに合うようなグリッド関連のCSSプロパティが見つかりませんでした。
免責事項 CSS Grid Layoutを使わなくても、そのカレンダーをスタイリングする簡単な方法があることは承知しています。しかし、この質問は、具体的な例を解決することよりも、このトピックに関する一般的な知識に関するものです。
どのように解決するのですか?
デフォルトでは、グリッドアイテムはそのコンテンツのサイズより小さくすることはできません。
グリッドアイテムの初期サイズは
min-width: auto
と
min-height: auto
.
この動作をオーバーライドするには、グリッドアイテムに
min-width: 0
,
min-height: 0
または
overflow
以外の値で
visible
.
仕様書より
グリッドアイテムのデフォルトの最小サイズをより合理的にするために、この 仕様では
auto
の値はmin-width
/min-height
を持つグリッドアイテムには、指定された軸での自動最小サイズを適用します。overflow
はvisible
. (この効果は、フレックスアイテムに課される自動最小サイズと類似しています)。
ここでは、フレックスアイテムについて詳しく説明しますが、グリッドアイテムにも当てはまります。
この記事では、以下のような潜在的な問題点も取り上げています。 ネストされたコンテナ と既知の 主要ブラウザ間のレンダリングの違い .
レイアウトを修正するには、コードを以下のように調整します。
.month-grid {
display: grid;
grid-template: repeat(6, 1fr) / repeat(7, 1fr);
background: #fff;
grid-gap: 2px;
min-height: 0; /* NEW */
min-width: 0; /* NEW; needed for Firefox */
}
.day-item {
padding: 10px;
background: #DFE7E7;
overflow: hidden; /* NEW */
min-width: 0; /* NEW; needed for Firefox */
}
1fr
対
minmax(0, 1fr)
上記の解決策は、グリッドアイテムレベルで動作します。コンテナレベルでの解決策については、この投稿を参照してください。
関連
-
[解決済み] font: inheritを使用する目的は何ですか?
-
[解決済み] DIVの背景色が表示されない
-
[解決済み] reactでスティッキーフッターを作るには?
-
[解決済み] Bootstrap 4のclass="mb-0 "とは何ですか?
-
[解決済み] three.jsの背景を透明や他の色に変更する。
-
[解決済み] divの内容を下に揃える方法
-
[解決済み] フレックスボックスのアイテム間の距離を設定するためのより良い方法
-
[解決済み] CSS 100% height と padding/margin の関係
-
[解決済み] フレックスボックス 最後の行をグリッドに揃える
-
[解決済み】display:flexを使って残りの縦幅をCSSで埋める。
最新
-
nginxです。[emerg] 0.0.0.0:80 への bind() に失敗しました (98: アドレスは既に使用中です)
-
htmlページでギリシャ文字を使うには
-
ピュアhtml+cssでの要素読み込み効果
-
純粋なhtml + cssで五輪を実現するサンプルコード
-
ナビゲーションバー・ドロップダウンメニューのHTML+CSSサンプルコード
-
タイピング効果を実現するピュアhtml+css
-
htmlの選択ボックスのプレースホルダー作成に関する質問
-
html css3 伸縮しない 画像表示効果
-
トップナビゲーションバーメニュー作成用HTML+CSS
-
html+css 実装 サイバーパンク風ボタン
おすすめ
-
[解決済み】サイドバーの位置を変更する
-
[解決済み】DIVの幅が100%というのは本当の100%ではない
-
[解決済み】bootstrap 3で画像にテキストを回り込ませる
-
[解決済み] <div style="display:none">によるテーブルデータの非表示。
-
[解決済み] font: inheritを使用する目的は何ですか?
-
[解決済み] Railsです。railsでcssから背景画像を設定する方法は?
-
[解決済み] Bootstrap 3でnavbar-static-topは何をするのですか?
-
[解決済み] テーブルの行にマージンを追加する方法 <tr> [重複]。
-
[解決済み] div要素内でテキストが折り返されない
-
[解決済み] codepenでfont awesomeを使用する