序文 日曜日に自宅で 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 データベースをインストールし、環境変数を設定するためのグラフィック チュートリアル
インデックスはソートされたデータ構造です。 where 条件での検索や order by 条件での並...
今日は新しいCSS特殊効果、波型ウォーターボール効果を学びました。これもとても美しいです HTML:...
目次前面に書かれた序文ChromeプラグインとはChrome プラグイン開発を学ぶことの意義は何です...
1. インストールターミネーターの最大の特徴は、1つのウィンドウで複数のターミナルを開くことができる...
1. ダウンロード公式サイトからmysql-5.7.19-linux-glibc2.12-x86_6...
MySQL ブール値、偽または真を格納つまり、データベースに保存されるブール値は 0 と 1 であり...
目次1. ルートパスワードを忘れてしまい、データベースにアクセスできない: DBA にとって、スーパ...
勉強中に読んだ本についてもよく聞かれます。以下は初心者におすすめの本です(私が勉強中に読んだ本です。...
まだ rem フレキシブルレイアウトを使用していますか?圧縮された js コードの大きなセクションを...
さっそく、コードを直接投稿します。具体的なコードは次のとおりです。 <!DOCTYPE htm...
1. データ感度低下の説明日常の開発ニーズでは、データの感度低下が頻繁に発生します。たとえば、ID ...
Docker を実行するには root 権限が必要です。非 root ユーザーに docker コマ...
背景インターフェイス ドメイン名はハードコードされておらず、動的に取得されます。具体的な実装は、静的...
目次docker-compose.ymlを書くdocker-composeを実行するビルドステータス...