ホームページ ウェブフロントエンド htmlチュートリアル ドロップダウン選択ボックスに代わる純粋な CSS select_html/css_WEB-ITnose

ドロップダウン選択ボックスに代わる純粋な CSS select_html/css_WEB-ITnose

Jun 24, 2016 am 11:58 AM
css select 落ちる プラン 選ぶ

这篇教程中,我将给大家展示表单元素下拉选择框select的CSS替代方案。该方法采用css来实现,看上去非常简单。我们用radio标签列表来模拟下拉列表,选择一个radio可以很好的模拟出select中选择一个元素的效果。

一:HTML

下面是我们在form表单里面用到的html代码:

.代码 

  1.   
  2.         
      
  3.                 
    Choose your beer
      
  4.                 
        
    •                         
    •   
    •                                   
    •                                   
    •                         
    •   
    •                         
    •   
    •                                   
    •                                   
    •                         
    •   
    •                         
    •   
    •                                   
    •                                   
    •                         
    •   
    •                         
    •   
    •                                   
    •                                   
    •                         
    •   
    •                 
      
  5.         
  • II: ロジック スケッチ

    説明をより直感的にするために、次のスケッチを描いてみました。明確であることを願っています。フロントエンド UI の共有

    3: CSS コード

    チュートリアルをより簡潔に見せるために、視覚効果のための CSS コードの一部 (矢印を描画するための CSS など) を省略しました。添付ファイルのバージョン コードで全文を確認してください。同じ理由で、さまざまなブラウザに固有のプレフィックスも省略します。

    radio-container css:

    .Code

    1. radio-container {
    2. 位置: 相対
    3. 高さ: 4em (内部コンテナの最大高さ) + 1えっと("margin") */
    4. }
    5. .radio-container:hover {
    6. z-index: 9999; }

    radio-container css に含まれる要素: フロントエンド UI 共有

    .code

    .radio-options {
    1. 位置: 絶対;
    2. 幅: 100%;
    3. 遷移: 0.7 秒;
    4. コード
    5. .radio-options .toggle {
    6. 位置: 相対 ;
    7. パディング: 0.75em;
    8. ボーダー半径: 10px;
    9. Zインデックス: 1 ; }
    10. * li は .toggle と同じ位置にスタックされ、 .toggle のみが表示されます */
    .radio-options li {

    位置: 絶対;

    左: 0;

    幅: 10 0%;

    高さ: 100%;

    .radio-options ラベル {
      不透明度: 0;
    1. 遷移: 0;
    2. 入力を非表示にするために、display: none を使用して目的を達成できますが、この方法では、一部のブラウザー (一部のモバイル ブラウザーなど) でラベルをクリックしても、関連する入力に焦点が当てられません。フロントエンド UI 共有
    3. .code
    4. .radio-options input {
    5. 位置: 絶対;
    6. 左: 0;
    7. 幅: 300px;
    8. 高さ: 3em ;
    9. 不透明度: 0;
    10. z-index:1;
    11. カーソル: ポインタ;
    12. Four: マウスを上に移動するための CSS コード
    13. 上記のコードに従って、次のようにしてみましょうもっと詳しく見る .radio-container の z-index は非常に大きな値であり、.radio-options の max-height 属性も大きくなっています (100em) 続けましょう:
    14. コード
      1. /* li 要素には、.radio-options コンテナ内で通常のフローがあります */
      2. .radio-options:hover li {
      3. position: relative; }
      4. .radio-options:hover label {
      5. opacity: 1;  
      6. トランジション: 0.5 秒。 }

      五:选中状態态

      チェックされたオプションをスタイルするには、一般的な兄弟セレクターを使用します。チルダ文字コンビネータ (E ~ F) を使用し、特定の要素の兄弟である要素と一致します。最初の要素 (E) は 2 番目の要素 (F) より前に出現する必要があり、同じ親 (この場合は li 項目) を共有する必要があります。トグルの代わりにそのラベル:


      .代码

      .radio-options input:checked ~ label {
        position: absolute;  
      1. トップ: 0;  
      2. 左: 0;  
      3. 右: 0;  
      4. 不透明度: 1;  
      5. /* は .toggle の上にあるので表示されます */
      6. z-index: 2;  
      7. /* .toggle */
      8. padding: 0.75em; と同じスタイルがあります。  
      9. 背景: ダークグリーン;  
      10. ボーダー半径: 10px; }
      ホバーすると通常のフローに戻ります

      .radio-options:hover input:checked ~ label {

      位置: 静的;  

      境界半径: 0; }
      1. 六:移動装置上に必要な修正
      原因は我们响应がネズミ标のホバーイベントであるため、必要に応じて移動装置上に必要な修正

      解決策の 1 つは、私たちは最初に独自の modernizr ビルドを使用してデバイスを検出し、次のようなスクリプトを追加しました:

      .代コード

      1. $(document).ready(function(){
      2. if (Modernizr.touch) {
      3. $(".radio-options").bind("click", function(event) {
      4. if (! ($(this).parent('.radio-container').hasClass("active")) {
      5. $(this).parent('.radio-container').addClass("active");
      6. even.stopPropagation();
      7. });
      8. $(".toggle").bind("click", function(){
      9. $(this).parents('.radio-container' ).removeClass("active");
      10. return false;
      11. });
      12. })
      13. 在css中我如下修改每一个:hover的定义: フロントエンドUI分享
      .代码

      .no-touch .radio-container:hover, .active.radio-container {

      z-index: 9999; }

      .no-touch .radio-options:hover, .active .radio-options {
        max-height: 100em;  
      1. }
      2. .no-touch .radio-options:hover li, .active .radio-options li {
      3. 位置: 相対; }
      4. .no-touch .radio-options:hover label, .active .radio-options label {
      5. opacity: 1;  
      6. トランジション: 0.5 秒。 }
      7. ....
      8. 七:IE8下でどのように処理するか
      互換性があるかどうかIE8は自己に基づいて、この部分は本教程の焦点では​​ありません

      .代码

      < ;!--[if (IE 8)]>  

      <スクリプト>  

      $(document).ready(function(){
        $(".radio-options li").bind("click", function() {
      1. $(this).siblings(".checked") .removeClass("checked");
      2. $(this).addClass("checked");
      3. });  
      4.   
      5.   
      6. CSS
      7. .code

        .radio-options .checked label {
        1. 上: 0;
        2. 右: 0;
        3. パディング: 0.75em;背景: #1b9e4d;
        4. 可視性: 可視;
        5. z-index: 2; }
        6. ....
        7. チュートリアルは終わりました、お役に立てば幸いです、ありがとう。
    このウェブサイトの声明
    この記事の内容はネチズンが自主的に寄稿したものであり、著作権は原著者に帰属します。このサイトは、それに相当する法的責任を負いません。盗作または侵害の疑いのあるコンテンツを見つけた場合は、admin@php.cn までご連絡ください。

    ホットAIツール

    Undresser.AI Undress

    Undresser.AI Undress

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

    AI Clothes Remover

    AI Clothes Remover

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

    Undress AI Tool

    Undress AI Tool

    脱衣画像を無料で

    Clothoff.io

    Clothoff.io

    AI衣類リムーバー

    Video Face Swap

    Video Face Swap

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

    ホットツール

    メモ帳++7.3.1

    メモ帳++7.3.1

    使いやすく無料のコードエディター

    SublimeText3 中国語版

    SublimeText3 中国語版

    中国語版、とても使いやすい

    ゼンドスタジオ 13.0.1

    ゼンドスタジオ 13.0.1

    強力な PHP 統合開発環境

    ドリームウィーバー CS6

    ドリームウィーバー CS6

    ビジュアル Web 開発ツール

    SublimeText3 Mac版

    SublimeText3 Mac版

    神レベルのコード編集ソフト(SublimeText3)

    VueでBootstrapの使用方法 VueでBootstrapの使用方法 Apr 07, 2025 pm 11:33 PM

    vue.jsでBootstrapを使用すると、5つのステップに分かれています。ブートストラップをインストールします。 main.jsにブートストラップをインポートしますブートストラップコンポーネントをテンプレートで直接使用します。オプション:カスタムスタイル。オプション:プラグインを使用します。

    HTML、CSS、およびJavaScriptの役割:コアの責任 HTML、CSS、およびJavaScriptの役割:コアの責任 Apr 08, 2025 pm 07:05 PM

    HTMLはWeb構造を定義し、CSSはスタイルとレイアウトを担当し、JavaScriptは動的な相互作用を提供します。 3人はWeb開発で職務を遂行し、共同でカラフルなWebサイトを構築します。

    ブートストラップにスプリットラインを書く方法 ブートストラップにスプリットラインを書く方法 Apr 07, 2025 pm 03:12 PM

    ブートストラップスプリットラインを作成するには2つの方法があります。タグを使用して、水平方向のスプリットラインを作成します。 CSS Borderプロパティを使用して、カスタムスタイルのスプリットラインを作成します。

    HTML、CSS、およびJavaScriptの理解:初心者向けガイド HTML、CSS、およびJavaScriptの理解:初心者向けガイド Apr 12, 2025 am 12:02 AM

    webdevelopmentReliesOnhtml、css、andjavascript:1)htmlStructuresContent、2)cssStylesit、および3)Javascriptaddsinteractivity、形成、

    ブートストラップボタンの使用方法 ブートストラップボタンの使用方法 Apr 07, 2025 pm 03:09 PM

    ブートストラップボタンの使用方法は?ブートストラップCSSを導入してボタン要素を作成し、ブートストラップボタンクラスを追加してボタンテキストを追加します

    ブートストラップのサイズを変更する方法 ブートストラップのサイズを変更する方法 Apr 07, 2025 pm 03:18 PM

    Bootstrapの要素のサイズを調整するには、次のものを含むDimensionクラスを使用できます。

    ブートストラップのフレームワークをセットアップする方法 ブートストラップのフレームワークをセットアップする方法 Apr 07, 2025 pm 03:27 PM

    Bootstrapフレームワークをセットアップするには、次の手順に従う必要があります。1。CDNを介してブートストラップファイルを参照してください。 2。独自のサーバーでファイルをダウンロードしてホストします。 3。HTMLにブートストラップファイルを含めます。 4.必要に応じてSASS/LESSをコンパイルします。 5。カスタムファイルをインポートします(オプション)。セットアップが完了したら、Bootstrapのグリッドシステム、コンポーネント、スタイルを使用して、レスポンシブWebサイトとアプリケーションを作成できます。

    ブートストラップに写真を挿入する方法 ブートストラップに写真を挿入する方法 Apr 07, 2025 pm 03:30 PM

    ブートストラップに画像を挿入する方法はいくつかあります。HTMLIMGタグを使用して、画像を直接挿入します。ブートストラップ画像コンポーネントを使用すると、レスポンシブ画像とより多くのスタイルを提供できます。画像サイズを設定し、IMG-Fluidクラスを使用して画像を適応可能にします。 IMGボーダークラスを使用して、境界線を設定します。丸い角を設定し、IMGラウンドクラスを使用します。影を設定し、影のクラスを使用します。 CSSスタイルを使用して、画像をサイズ変更して配置します。背景画像を使用して、背景イメージCSSプロパティを使用します。

    See all articles