序文 日曜日に自宅で web.dev の 2020 3 日間ライブを視聴したところ、興味深い点がたくさんありましたが、そのうちの 1 つは CSS に関するものでした。ホストは Una Kravets (Chrome チーム メンバー) でした。ここ数か月、CSS を深く勉強していませんが、以前学んだ基礎はそのまま残っています (興味があれば、1 年前に投稿した CSS に関する記事を読んでみてください。ただし、内容が低すぎるため、読む人は多くありません。残念です)。 注意: 以下のコードのほとんどは、最新の主要ブラウザで実装されています。本番環境では使用しないでください。公式アカウントの読者であれば、外部リンクのため、クリックして元のテキストを読むことができます。github ページに、より詳細なデモがあります。 文章 01. スーパーセンター flex と grid が登場する前は、垂直方向の中央揃えをうまく実現できませんでした。これで、 <div class="親青"> <div class="box coral" コンテンツ編集可能> :) </div> .ex1 .親{ 表示: グリッド; アイテムを配置: 中央; } MDN、place-items属性の詳細な説明 Codepenアドレス 02. 解体パンケーキ
このレイアウトは、eコマースのウェブサイトでよく見られます。 ビューポートが十分に大きい場合、3 つのボックスが固定幅で水平に配置されます。 ビューポートが大きくない場合(モバイルなど)、幅は固定されたままですが、自動的に分解され(私の中国語レベルを許してください)、同じレベルにはなりません。 <div class="親白"> <div class="box green">1</div> <div class="box green">2</div> <div class="box green">3</div> </div> .ex2 .親{ ディスプレイ: フレックス; flex-wrap: ラップ; コンテンツの中央揃え: 中央; } .ex2 .ボックス { flex: 1 1 150px; /* flex-grow: 1 は、自動的に最大幅まで拡張することを意味します*/ flex: 0 1 150px; /* 伸縮なし: */ マージン: 5px; }
いつ: Codepenアドレス 03. クラシックサイドバー
また、 <div class="parent"> <div class="section yellow" コンテンツ編集可能> 最小: 150ピクセル / 最大: 25% </div> <div class="section purple" コンテンツ編集可能> この要素は2番目のグリッド位置(1fr)を占め、 残りのスペースをすべて占有します。 </div> </div> .ex3 .親{ 表示: グリッド; グリッドテンプレート列: 最小最大(150px, 25%) 1fr; } Codepenアドレス 04. ヘッダーとフッターを固定
高さが固定されたヘッダーとフッター、および残りのスペースを占める本体は、頻繁に使用されるレイアウトであり、 <div class="parent"> <header class="blue section" contenteditable>ヘッダー</header> <main class="coral section" contenteditable>メイン</main> <footer class="purple section" contenteditable>フッターコンテンツ</footer> </div> .ex4 .親{ 表示: グリッド; グリッドテンプレート行: 自動 1fr 自動; } Codepenアドレス 05. クラシカルな聖杯レイアウト
グリッド レイアウトを使用すると、簡単に理想のレイアウトを実現でき、柔軟性も高くなります。 <div class="parent"> <header class="pink section">ヘッダー</header> <div class="left-side blue section" contenteditable>左サイドバー</div> <main class="section coral" contenteditable> メインコンテンツ</main> <div class="right-side yellow section" contenteditable>右サイドバー</div> <footer class="green section">フッター</footer> </div> .ex5 .親{ 表示: グリッド; グリッドテンプレート: auto 1fr auto / auto 1fr auto; } .ex5 ヘッダー { パディング: 2rem; グリッド列: 1 / 4; } .ex5 .左側 { グリッド列: 1 / 2; } .ex5 メイン { グリッド列: 2 / 3; } .ex5 .右側 { グリッド列: 3 / 4; } .ex5 フッター { グリッド列: 1 / 4; } Codepenアドレス 06. 面白い積み木
Codepenアドレス 07. RAMのヒント
Una Kravets はこれを「繰り返し、自動、最小最大化テクニック」と呼んでいます。これは、柔軟なレイアウトの画像/ボックスで非常に便利です (行に配置できるカードの数は自動的に調整されます)。 .ex7 .親{ 表示: グリッド; グリッドギャップ: 1rem; グリッドテンプレート列: repeat(auto-fit, minmax(150px, 1fr)); } <div class="親白"> <div class="box pink">1</div> <div class="box purple">2</div> <div class="box blue">3</div> <div class="box green">4</div> </div> その結果、複数のボックスの最小幅(上記の
08. カードの弾力性と適応性
<div class="親白"> <div class="カード 黄色"> <h3>タイトル - カード 1</h3> <p contenteditable>中程度の長さの説明で、ここにさらにいくつかの単語を追加します。</p> <div class="ビジュアルピンク"></div> </div> <div class="カード 黄色"> <h3>タイトル - カード 2</h3> <p contenteditable>長い説明。お会いできてとても嬉しいです。</p> <div class="ビジュアルブルー"></div> </div> <div class="カード 黄色"> <h3>タイトル - カード 3</h3> <p contenteditable>短い説明。</p> <div class="visual green"></div> </div> </div> .ex8 .親{ 高さ: 自動; 表示: グリッド; グリッドギャップ: 1rem; グリッドテンプレート列: repeat(3, 1fr); } .ex8 .visual { 高さ: 100px; 幅: 100%; } .ex8 .カード { ディスプレイ: フレックス; flex-direction: 列; パディング: 1rem; コンテンツの両端揃え: スペースの間; } .ex8 h3 { マージン: 0 } 幅や高さを縮小しても拡大しても、カードのレイアウトを完璧に表示できます。 Codepenアドレス 09. クランプを使用して流動的なタイポグラフィを実装する
新しい <div class="親白"> <div class="カード 紫"> <h1>タイトルをここに入力</h1> <div class="visual yellow"></div> <p>説明テキスト。Lorem ipsum dolor sit, amet consectetur adipisicing elit。Sed est error repellat veritatis。</p> </div> </div> .ex9 .親{ 表示: グリッド; アイテムを配置: 中央; } .ex9 .カード { 幅: クランプ(23ch, 50%, 46ch); ディスプレイ: フレックス; flex-direction: 列; パディング: 1rem; } .ex9 .visual { 高さ: 125px; 幅: 100%; } MDN、clamp() の説明 10. 完璧なバランス
CMS やその他のデザイン コンテンツを表示する場合、画像、ビデオ、カードが固定の比率でレイアウトされることが想定されます。最新の <div class="親白"> <div class="カード ブルー"> <h1>ビデオのタイトル</h1> <div class="visual green"></div> <p>説明テキスト。このデモは Chromium 84 以降で動作します。</p> </div> </div> .ex10 .親{ 表示: グリッド; アイテムを配置: 中央; } .ex10 .visual { アスペクト比: 16/9; } .ex10 .カード { 幅: 50%; ディスプレイ: フレックス; flex-direction: 列; パディング: 1rem; } Codepenアドレス |
<<: 163 メールボックスログインボックスインタラクティブデザインの改善体験と共有
>>: Mac に MySQL データベースをインストールし、環境変数を設定するためのグラフィック チュートリアル
序文Windows では、各インスタンスに適切なパラメータを使用してコマンド ラインから複数の My...
HTML 初心者は、ファイルを正しく参照する方法という問題によく遭遇します。たとえば、HTML ペー...
目次1. 必須属性1. 名前2. バージョン2. 説明情報1. 説明2. キーワード3. 著者4. ...
今日は、シンプルなハートビート効果を作成します。多くのコードは必要ありません。ボックスを追加し、CS...
目次1. forループ2. 二重の for ループ3. whileループ4. dowhileループ5...
1. 環境バージョンDocker バージョン 19.03.12セントロス7ソル8.6.2 2. Do...
実施原則メイングラフィックは、背景と前景の 2 つの要素で構成されています。次のサンプルコードでは、...
目次1. 指令とは何ですか? Vue でよく使われる組み込みの v ディレクティブv-if と v-...
目次1.MySQLは時間間隔を加算または減算します2. 日付を減算する最近、MySQL を見直してい...
実際の開発ではポップアップウィンドウがよく使われます。CSS3を勉強していたときに、閉じることができ...
最初の方法: docker インストール1. オープンソース版のイメージを取得する2. 対応するデー...
大量のデータベース データを最適化することは非常に高度な科学であり、開発者が習得する必要がある専門的...
目次MySQL インデックス最適化ページングの調査ケース1ケース2 MySQL インデックス最適化ペ...
テーブルデータを作成する テーブル `praise_info` を作成します ( `id` bigi...
1. 親コンテナーをテーブルに設定し、子をインライン要素に設定します。テキストを表示するサブコンテン...