ホームページ  >  記事  >  ウェブフロントエンド  >  純粋な CSS を使用して折りたたみ可能なツリー メニューを作成する方法の紹介

純粋な CSS を使用して折りたたみ可能なツリー メニューを作成する方法の紹介

高洛峰
高洛峰オリジナル
2017-03-17 13:00:561648ブラウズ

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

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

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

HTML コード:




  • < ;
  • file">下位






  • 実装アイデアは、チェックボックスのチェックされた値を使用して、下位レベルの列が展開されるかどうかを決定することです。CSS3 セレクターは、次のことを提供します。この疑似クラスは、要素にチェックされた値。 (非常に強力ですよね? 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! important;padding- left: 1px;
    }
    li label {
    cursor:pointer;display:block;padding-left:17px;background:url(toggle-small-expand.png) no-repeat 0px 1px;
    }
    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;
    }
    input:checked + 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;
    }

    これは、input チェック後の同じレベルの OL が所有するスタイルです。

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

    概要:

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

    以上が純粋な CSS を使用して折りたたみ可能なツリー メニューを作成する方法の紹介の詳細内容です。詳細については、PHP 中国語 Web サイトの他の関連記事を参照してください。

    声明:
    この記事の内容はネチズンが自主的に寄稿したものであり、著作権は原著者に帰属します。このサイトは、それに相当する法的責任を負いません。盗作または侵害の疑いのあるコンテンツを見つけた場合は、admin@php.cn までご連絡ください。