使っています
grid-template-columns: repeat(auto-fit, 250px)
グリッドアイテムを保持する
250px
幅は広いですが、画面の幅に応じて行アイテムの数を自動的に調整します。アイテムにカーソルを合わせると、兄弟のスペースを少し取って拡大し、兄弟が縮小するようにします。沿って
console.log()
、見つけた
nextElementSibling
使用できます。だから私は次のようなことを考えています-
function expand(card){
card.setAttribute("style","width: 300px;");
card.nextElementSibling.setAttribute("style","width: 200px");
}
function restore(card){
card.setAttribute("style","width: 250px;");
card.nextElementSibling.setAttribute("style","width: 250px");
}
コーナーアイテムを個別に管理する必要があるため、これはかなり悪いようです(おそらく!)。したがって、現在の連続アイテム数を知る必要があります。また、カードにカーソルを合わせると、カードは拡張されますが、
repeat(auto-fit,250px)
、個々のセルが固定されたままであるため、カードはその兄弟と交差します(
250px
)。
どうすれば問題を解決できますか?または、より良い提案された解決策はありますか?
ここに 私のgitリポジトリです。
編集1- 私の問題を明確にするために:
になります
だから、によって引き起こされるこの行動に対処する方法
auto-fit,250px
?
関連した質問
- Webの要素が突然消える
- ブートストラップリスト-グループ:アイテムを複製することは可能ですか?
- チェックボックスとそれに対応するリストタグを削除します
- ホバーまたはクリックして、それぞれの画像を表示します
- 私はajaxとjqueryを初めて使用するので、コードの何が問題なのかわかりません
- javascriptまたはjqueryを使用したJSONへのHTML非フォームデータ
- JavaScript/HTML/CSS/JQueryを介したフィルター可能なギャラリーが機能しない
- 非同期を使用してMathJaxでテキストをプレビューする
- 動的に作成されたID(親要素に基づくIDを使用)でクリックイベントをトリガーする
- 選択オプションから値を送信
私は正直にそれを使用してそれを解決しようとしました
grid-template-columns: repeat(auto-fit, minmax(250px,auto));
子要素のサイズは異なりますが、不安定すぎてそのように機能しません。しかし、私は思いませんgrid
このタスクには必須です。これを解決する方法を理解する最も簡単な方法-古き良きJavaScript(+ jQuery)とflex
。正しい方法は、ホバーされた要素の最も近い兄弟だけでなく、単一の行のすべての要素のサイズを変更することです。任意の画面サイズでお試しください。