ホームページ > ウェブフロントエンド > htmlチュートリアル > 純粋な CSS を使用して折りたたみ可能なツリー メニューを作成する方法を学びます。

純粋な CSS を使用して折りたたみ可能なツリー メニューを作成する方法を学びます。

WBOY
リリース: 2016-10-19 10:19:24
オリジナル
1324 人が閲覧しました

CSS3のリリースに伴い、海外の研究が本格化していますが、中国では未だにIEはCSS3をサポートしていないという考えを持ち、無関心で学習を拒否している人が多くいます。しかし、歴史は、良いものは普及し、最終的に CSS3 が CSS2 に取って代わることを示しています。CSS3 で作成された折りたたみ可能なツリー メニューを共有しましょう。

ツリーメニューは皆さんもよくご存知かと思いますが、通常はcss+JSを使って実装しています。 CSS3 の登場により、JS の制約を取り除き、CSS3 の「セレクター」を直接使用して、折りたたみ可能な ツリー メニュー を実現できるようになりました。

全体的なコードが多いため、一文ごとには説明しませんが、重要だと思うものだけを説明します。

HTML コード:




  • < ;ol>
  • 下位






  • ア​​イデア実装の目的は、チェックボックスのチェックされた値を使用して、下位列が展開されるかどうかを決定することです。CSS3 セレクターは :checked 疑似クラスを提供します。この疑似クラスは、この値がチェックされたときに CSS が実行されることを示します。 。 (非常に強力ですよね? CSS3 を使用すると、記述する JS の量が大幅に減ります!)



    チェックボックスの値がチェックされている場合、OL が必要な機能を実現できるようにします。

    CSS コードを見てみましょう: li input {
    position:absolute;left:0;margin-left:0;opacity:0;z-index:2;cursor:pointer;height : 1em;width:1em;top:0;
    }
    input + ol {
    display:none;
    }
    input + ol > li {
    height:0;overflow:hidden;margin-left:-14px!重要;padding-left:1px;
    }
    li label {
    cursor:pointer;display:block;padding-left:17px;background:url(toggle-small-expand.png) no-repeat 0px 1px;
    }
    input : チェック済み + ol {
    background:url(toggle-small.png) 44px 5px no-repeat;margin:-22px 0 0 -44px;padding:27px 0 0 80px;height:auto;display:block;
    }
    input : selected + ol > li {
    height:auto;
    }

    このコードはツリー メニューの中心です:

    input:checked + ol {
    background: url(toggle-small.png) 44px 5px no- repeat ;margin: -22px 0 0 -44px;padding:27px 0 0 80px;height: auto;display: block;
    }

    これは、入力がチェックされた後にそのレベルの OL が所有するスタイルに関するものです。

    IE9以下をご利用の方は読む必要はありません。IE以外のブラウザをご利用ください。

    (IE6以降のブラウザにサポートさせることも可能ですが、CSS3属性をシミュレートするJSを追加する必要があります。海外にはIE6以降のブラウザにPIEなどのCSS3の一部をサポートさせるためのJSを書いた優秀な人材がたくさんいます。)

    概要:

    全体 とはいえ、実装アイデアは非常にシンプルで、主に CSS3 のチェック済み疑似クラスを使用して OL の非表示を実現します。残念ながら IE ブラウザは CSS3 をサポートしていませんが、IE がサポートしていないからといって CSS3 の研究を諦めるわけにはいきません。 CSS3 と HTML5 はどちらも海外のフロントエンドで非常に注目されているトピックであり、彼らの研究は私たちの研究をはるかに上回っていますが、中国ではまだ実際に試してみる人が多くありません。これはフロントエンド開発者にとって非常に悲しいことです。 CSS3 は注目を集め、スタートラインで負けないようにするべきだと思います。皆さんも力を合わせて CSS3 の開発を推進していきましょう。

    ソース:php.cn
    このウェブサイトの声明
    この記事の内容はネチズンが自主的に寄稿したものであり、著作権は原著者に帰属します。このサイトは、それに相当する法的責任を負いません。盗作または侵害の疑いのあるコンテンツを見つけた場合は、admin@php.cn までご連絡ください。
    人気のチュートリアル
    詳細>
    最新のダウンロード
    詳細>
    ウェブエフェクト
    公式サイト
    サイト素材
    フロントエンドテンプレート