コアポイント
- FlexBoxは、開発者が冗長CSSやJavaScriptのトリックに依存せずに複雑なUIを作成できるCSSレイアウトモデルです。線形レイアウトモデルを使用して、計算なしでコンテンツを水平方向または垂直に簡単にレイアウトできるようにします。
- FlexBoxを使用して、巨大なナビゲーションメニューを備えたWebサイトを作成できます。このレイアウトモデルにより、シンプルなナビゲーションバー、シングルドロップダウンメニューセグメント、およびシングルドロップダウンメニューセグメントを3列に制限できます。フレックスレイアウトは、コンテナ内の要素に応答し、メディアクエリの必要性を減らします。 このチュートリアルで作成された最終的なメガメニューは、完全には応答性がありません。メインメニューバーは小さな画面に表示されますが、巨大なメニューは使用できず、トップレベルのリンクのみが使用できます。ただし、このチュートリアルは、FlexBoxのパワーとシンプルさの良いデモンストレーションです。
- 巨大なメニューナビゲーションは、すべてのオプションを表示するのに非常に役立ち、eコマースWebサイトで効果的に使用できます。ただし、そのような機能の使いやすさを考慮し、実装前にそれらの長所と短所を理解することが重要です。
ご存知のように、ブラウザのサポートが増加するにつれて、FlexBoxは最近多くの注目を集めています。開発者は、冗長CSSやJavaScriptのトリックに依存することなく、複雑なUIを構築できます。
FlexBoxは線形レイアウトモデルを使用して、間隔計算なしに水平または垂直にコンテンツをレイアウトできるようにします。フレックスレイアウトは、コンテナ内の要素に応答し、メディアクエリの必要性を減らします。
この記事では、このレイアウトモデルを使用して巨大なナビゲーションメニューを構築します。その過程で、FlexBoxを使用してUIコンポーネントを構築および拡張するのがどれほど簡単かがわかります。ここでは、個々のFlexboxプロパティについて詳しく説明しませんが、これらの機能の実際のアプリケーションに焦点を当てます。 FlexBoxの基本的な紹介については、次のリソースを参照してください。
Guy RoutledgeのFlexBoxチュートリアル
Flexboxの初心者向けは紹介
- FlexBox Complete Guide
- 何を構築しますか?
- 私が何を構築するかを示すものを見つけるには、フル画面のCodepenをチェックしてください。
ナビゲーションバーの構築:FlexBoxを使用して、架空のeコマースプラットフォーム用のシンプルなナビゲーションバーを構築します
単一のドロップダウンメニューセグメントを構築します
単一のドロップダウンメニューセグメントを3列に制限します
- ナビゲーションバーをビルド
- ナビゲーションバーのマーキングは簡単です。デモンストレーションのために、すべてを処理するために2つのクラス(Navbarとメニュー)を使用します。ここのCSSは、このチュートリアルに関係のないスタイルを除外します。
- Navbarクラスは、ナビゲーションバーを利用可能なスペースに集中させる責任がありますが、FlexBoxを使用するメニュークラスに焦点を当てます。
ナビゲーションアイテムを水平に配置したいです。また、スペースが不十分な場合は、各アイテムの間隔を空け、オンデマンドで絞り込むことを望んでいます。
まず、.menu要素にフレックスフォーマットコンテキストを作成する必要があります。これを使用して実装します。現在、.menu要素のすべての直接の子供(つまり、フレックスコンテナ)がフレックスプロジェクトになります。 display: flex
を追加して、それらを等しい幅で均等に成長させるようにしました。コードは次のとおりです
flex: 1
<nav class="navbar"> <ul class="menu"> <li><a href="https://www.php.cn/link/93ac0c50dd620dc7b88e5fe05c70e15b">Electronics</a><i> class="fa fa-angle-down"></i></li> </ul> </nav>
デモでは、メニュー項目の上にホバリングすると、背景色が変わります。 Flexプロジェクトのdisplay: flex
プロパティを
display
コンテンツを親要素の幅全体に拡張するために、フレックスプロジェクト自体もフレックスコンテナに変えました。この設定を使用すると、各ネストされた要素を親(flex
を使用して)と同じくらい広い要素にして、強調表示された領域全体をクリック可能にすることができます。
あるいは、LI要素をフレックスコンテナに設定せずにこれを達成することもできますが、3つの追加プロパティ(flex: 1
、
)を使用する必要があり、この状況を避けることを好みます。 display: inline-block
width: 100%
このデモは、これまでに行われたことを示しています。 box-sizing: border-box
次のセクションでは、巨大なナビゲーションを構築する方法の一部を紹介します。
単一のドロップダウンメニューセグメントを構築します
以下は、複数のセグメントに拡張される単一のドロップダウンメニューセグメントを構築するために使用されるマークアップです。 Container __Listプロジェクトがコピーされ、追加のセグメントが作成されます。
コンテナはフレックスコンテナであり、各直接子要素(つまり、Container__List)はフレックスプロジェクトです。各container__listには複数のナビゲーションアイテムがあり、それぞれがcontainer_listitemでラップされています。コンテンツをdivに巻き付けましたが、後で戻ってきます。
.navbar .menu { display: flex; position: relative; } .navbar .menu li { flex: 1; display: flex; text-align: center; } .navbar .menu a { flex: 1; justify-content: center; color: https://www.php.cn/link/93ac0c50dd620dc7b88e5fe05c70e15bffffff; padding: 20px; }以下はCSSです:
containerer__listで
プロパティを使用したことに注意してくださいが、ナビゲーションバー自体には使用しませんでした。前述のように、スペースが不十分なときにナビゲーションバーのアイテムを包みません。代わりに、利用可能な水平スペースが減少すると、それらは均等に縮小します。<ul class="container"> <div class="container__list"> <div class="container__listItem"> <div>Televisions</div> </div> </div> </ul>ただし、conterer__listプロジェクトの場合、要件はまったく逆です。リストアイテムにスペースの25%を使用してもらいたいので、各行が最大4つのアイテムを保持します。
flex-wrap
今、divに包まれたコンテンツはどうですか?コンテンツがあふれないようにしたい状況に対処したいと思います。これは、コンテンツがFlex Child Element(つまり、Container_LESTITEM)の内側に直接ある場合、非常に簡単です。次のコードを使用して、カットテキストを省略記事( "…")に置き換えることができます。
<nav class="navbar"> <ul class="menu"> <li><a href="https://www.php.cn/link/93ac0c50dd620dc7b88e5fe05c70e15b">Electronics</a><i> class="fa fa-angle-down"></i></li> </ul> </nav>ただし、この場合、コンテンツをcontainer_listitemでラップしたDivにコンテンツを配置します。したがって、上記のソリューションは機能しません。記事FlexBoxと切り捨てられたテキストは、ソリューションを提供します。次のコードでは、各宣言ブロックの「更新」コメントの次の行は、この問題を処理する行です。
単一のドロップダウンメニューセグメントを3列に制限します
.navbar .menu { display: flex; position: relative; } .navbar .menu li { flex: 1; display: flex; text-align: center; } .navbar .menu a { flex: 1; justify-content: center; color: https://www.php.cn/link/93ac0c50dd620dc7b88e5fe05c70e15bffffff; padding: 20px; }
この段階では、ほとんどの作業が完了しました。このセクションの残りの部分では、別のドロップダウンセクションを追加します。これは、3つの列項目に制限を強制します。
前述のように、containerer__listを2回コピーして、「Appliances」と呼ばれる新しいドロップダウンメニューセグメントに使用します。これはデモンストレーション用です。実用的な例では、JavaScriptまたはバックエンド言語でリストを生成する場合があります。
has-multiクラスを追加して、ユーザーインターフェイスを調整します。このクラスを使用して、いくつかのプロパティをオーバーライドする必要があります。
ここでは、コンテナに3つの部分を表示する必要があるため、
<ul class="container"> <div class="container__list"> <div class="container__listItem"> <div>Televisions</div> </div> </div> </ul>を33.333%に設定しました。私は
のみを変更しましたが、他の2つのプロパティflex-basis
とflex-basis
は単一のセクションコードから継承されました。これにより、Container__Listが3未満の場合、柔軟性が得られます。リストが2つしかない場合、Container__Listプロジェクトは成長し、それらの間にスペースを割り当てます。つまり、各アイテムは総幅の50%を占めます。 flex-grow
flex-shrink
.container__listitemは
flex-basis: 100%
巨大なメニューの使いやすさに関するいくつかのメモ
私は、その使いやすさをあまり考えることなく、私の例としてMegaメニューを選択しました。そのような機能を使用する前に、私はその長所と短所について議論するためのいくつかのリソースを提供しました。
私の意見では、Megaメニューナビゲーションはすべてのオプションを表示するのに非常に役立ちます。このナビゲーションスタイルは、電子商取引Webサイトに効果的に使用できます。 Intelのナビゲーションが好きです。
メガメニューの可用性の利点と短所(Megaメニューパート1)
- ジャイアントメニューは、ウェブサイトナビゲーションに最適です
- 巨大なドロップダウンメニュー
- 結論
巨大なドロップダウンメニューナビゲーションシステムは、FlexBoxのパワーとシンプルさを示す素晴らしい方法であり、このチュートリアルでそれを伝えたことを願っています。ご覧のとおり、FlexBoxはコンテンツの中心に使用されるだけではありません。
さまざまなFlexBoxベースのテクノロジーを使用してMegaメニューシステムを構築する場合は、コメントでお気軽にお知らせください。
更新:このCodepenデモで見つけることができるこれらのメガメニューのレスポンシブなモバイルフレンドリーなバージョンを作成しました。
FLEXBOX(FAQ)を使用してメガメニューを構築するためのFAQ
FlexBoxでMegaメニューを応答する方法は?FlexBoxでメガメニューを応答するのは非常に簡単です。メディアクエリを使用して、画面サイズに応じてメニューのレイアウトを調整できます。たとえば、メニューアイテムを小さな画面に垂直に積み重ねて、より大きな画面に水平に表示できます。また、フレックスラッププロパティを使用して、必要に応じてメニュー項目が複数の行にラップできるようにすることもできます。さまざまなデバイスでメニューをテストして、見栄えが良く、すべての画面サイズで機能していることを確認してください。
FlexBoxを使用してマルチレベルのメガメニューを作成できますか?
はい、FlexBoxを使用してマルチレベルのメガメニューを作成できます。フレックスコンテナを互いにネストして、マルチレベルのナビゲーションを作成できます。各レベルは、CSSおよびJavaScriptを使用して表示または非表示にできます。これにより、ナビゲートして理解しやすい複雑なナビゲーション構造を作成できます。
メガフレックスボックスメニューにアニメーションを追加する方法は?
CSSトランジションと変換を使用して、FlexBox Megaメニューにアニメーションを追加できます。たとえば、トランジションを使用して、サブメニューの開閉をスムーズにアニメーション化できます。変換を使用して、メニュー項目の動きをアニメーション化することもできます。ユーザーを混乱させたり気を散らしたりしないように、アニメーションと一貫性を維持することを忘れないでください。
Flexboxメガメニューのアクセシビリティを改善する方法は?
FlexBox Megaメニューのアクセシビリティを改善するには、いくつかのステップが含まれます。まず、メニューがキーボードを介してナビゲーション可能であることを確認してください。これは、ユーザーがタブキーと矢印キーを使用してメニューでナビゲートできることを意味します。第二に、ARIAの役割と属性を使用して、メニューに関する追加情報を支援技術に提供します。第三に、メニューに十分なコントラストがあり、読みやすいことを確認してください。
FlexBoxを使用して粘着性メガメニューを作成できますか?
はい、FlexBoxを使用して粘着性メガメニューを作成できます。 「Position:Sticky」CSSプロパティを使用して、ユーザーがスクロールするときにメニューをページの上部に貼り付けます。これにより、長いページでもメニューが常に表示され、アクセス可能になります。
メガフレックスボックスメニューにアイコンを追加する方法は?
アイコンフォントまたはSVGを使用して、FlexBox Megaメニューにアイコンを追加できます。 Flex属性を使用して、アイコンのサイズと間隔を制御できます。 CSSを使用して、アイコンの色とホバー効果を変更することもできます。
Mega Flexboxメニューに検索バーを追加する方法は?
入力フィールドとボタンを送信するフォームを含むフレックスアイテムを作成することにより、FlexBox Megaメニューに検索バーを追加できます。 Flex属性を使用して、検索バーのサイズと位置を制御できます。 CSSを使用して、メニューの残りの部分に一致する検索バーをスタイリングすることもできます。
メガフレックスボックスメニューにドロップダウンメニューを追加する方法は?
ネストされたフレックスコンテナを作成して、FlexBox Megaメニューにドロップダウンメニューを追加できます。 CSSを使用して、デフォルトでドロップダウンメニューを非表示にして、ユーザーが親メニュー項目を上回ったときにそれらを表示できます。 JavaScriptを使用して、ドロップダウンメニューに追加のインタラクティブ性を追加することもできます。たとえば、ユーザーがドロップダウンメニューの外側をクリックしたときに閉じるなどです。
FlexBoxメガメニューにモバイルメニューのトグルを追加する方法は?
メニューディスプレイを切り替えるボタンを作成して、FlexBox Megaメニューにモバイルメニューのトグルを追加できます。メディアクエリを使用して、大きな画面のトグルを非表示にし、小さな画面に表示できます。 JavaScriptを使用して、ボタンがクリックされたときにメニューの「表示」プロパティを切り替えることもできます。
FlexBox Megaメニューのパフォーマンスを最適化する方法は?
FlexBox Megaメニューのパフォーマンスを最適化するには、いくつかのステップが含まれます。まず、CSSとJavaScriptが収縮して圧縮されてファイルサイズを縮小していることを確認してください。第二に、CSSの遷移と変換をJavaScriptの代わりにアニメーションに使用します。第三に、メディアクエリを使用して、画面のサイズに応じてさまざまなスタイルとスクリプトをロードするため、不要なコードロードの量が減少します。以上がFlexBoxでメガメニューを構築しますの詳細内容です。詳細については、PHP 中国語 Web サイトの他の関連記事を参照してください。

この投稿では、Blackle Moriは、CohostのHTMLサポートの限界を押し広げようとしている間に見つかったハックのいくつかを示します。あえてこれらを使用してください、あなたもCSS犯罪者とラベル付けされないようにしてください。

CSSを備えたカスタムカーソルは素晴らしいですが、JavaScriptを使用して次のレベルに物事を引き出すことができます。 JavaScriptを使用して、カーソル状態間で移行し、カーソル内に動的テキストを配置し、複雑なアニメーションを適用し、フィルターを適用できます。

2025年には、互いに互いに跳ね返る要素を伴うインタラクティブなCSSアニメーションは、CSSにPongを実装する必要はありませんが、CSSの柔軟性とパワーの増加はLee&#039;の疑いを補強します。

CSSバックドロップフィルタープロパティを使用してユーザーインターフェイスをスタイルするためのヒントとコツ。バックドロップフィルターを複数の要素間でレイヤー化する方法を学び、それらを他のCSSグラフィカル効果と統合して、精巧なデザインを作成します。

まあ、SVG&#039;の組み込みのアニメーション機能は、計画どおりに非推奨されることはありませんでした。確かに、CSSとJavaScriptは負荷を運ぶことができる以上のものですが、以前のようにSmilが水中で死んでいないことを知っておくのは良いことです

イェーイ、テキストワラップのジャンプを見てみましょう:サファリテクノロジーのプレビューにかなり着陸してください!しかし、それがChromiumブラウザーでの仕組みとは異なることに注意してください。

このCSS-Tricksアップデートは、アルマナック、最近のポッドキャスト出演、新しいCSSカウンターガイド、および貴重なコンテンツを提供するいくつかの新しい著者の追加の大幅な進歩を強調しています。

ほとんどの場合、人々はTailwind&#039;の@Apply機能を紹介します。このように展示されたとき、@Applyはまったく有望な音をしません。だからobvio


ホットAIツール

Undresser.AI Undress
リアルなヌード写真を作成する AI 搭載アプリ

AI Clothes Remover
写真から衣服を削除するオンライン AI ツール。

Undress AI Tool
脱衣画像を無料で

Clothoff.io
AI衣類リムーバー

Video Face Swap
完全無料の AI 顔交換ツールを使用して、あらゆるビデオの顔を簡単に交換できます。

人気の記事

ホットツール

SecLists
SecLists は、セキュリティ テスターの究極の相棒です。これは、セキュリティ評価中に頻繁に使用されるさまざまな種類のリストを 1 か所にまとめたものです。 SecLists は、セキュリティ テスターが必要とする可能性のあるすべてのリストを便利に提供することで、セキュリティ テストをより効率的かつ生産的にするのに役立ちます。リストの種類には、ユーザー名、パスワード、URL、ファジング ペイロード、機密データ パターン、Web シェルなどが含まれます。テスターはこのリポジトリを新しいテスト マシンにプルするだけで、必要なあらゆる種類のリストにアクセスできるようになります。

mPDF
mPDF は、UTF-8 でエンコードされた HTML から PDF ファイルを生成できる PHP ライブラリです。オリジナルの作者である Ian Back は、Web サイトから「オンザフライ」で PDF ファイルを出力し、さまざまな言語を処理するために mPDF を作成しました。 HTML2FPDF などのオリジナルのスクリプトよりも遅く、Unicode フォントを使用すると生成されるファイルが大きくなりますが、CSS スタイルなどをサポートし、多くの機能強化が施されています。 RTL (アラビア語とヘブライ語) や CJK (中国語、日本語、韓国語) を含むほぼすべての言語をサポートします。ネストされたブロックレベル要素 (P、DIV など) をサポートします。

SublimeText3 Linux 新バージョン
SublimeText3 Linux 最新バージョン

メモ帳++7.3.1
使いやすく無料のコードエディター

DVWA
Damn Vulnerable Web App (DVWA) は、非常に脆弱な PHP/MySQL Web アプリケーションです。その主な目的は、セキュリティ専門家が法的環境でスキルとツールをテストするのに役立ち、Web 開発者が Web アプリケーションを保護するプロセスをより深く理解できるようにし、教師/生徒が教室環境で Web アプリケーションを教え/学習できるようにすることです。安全。 DVWA の目標は、シンプルでわかりやすいインターフェイスを通じて、さまざまな難易度で最も一般的な Web 脆弱性のいくつかを実践することです。このソフトウェアは、

ホットトピック









