質問をすることでしか得られない、回答やアドバイスがある。

15分調べてもわからないことは、質問しよう!

ただいまの
回答率

87.49%

プルダウンメニューを押下後、メニュー矢印を最初の状態に戻したい

受付中

回答 1

投稿 編集

  • 評価
  • クリップ 0
  • VIEW 650

score 8

プルダウンメニューを押下後に矢印と背景が変化し、
選択後はじめの矢印の向きと背景に戻したいです。
参考URLをもとに作成しましたが、動きをJSを使わずCSSで行いたいです。

参考:「標準的なプルダウンだが、選択メニューの形式をカスタマイズ。」
https://kodocode.net/design-css-selectlist/

擬似クラスを設ければうまくいくのでしょうか。
ご教授をお願いします。

        <div class="result">
        <p>表示件数</p>
        <select class="classic">
        <option>10</option>
        <option>20</option>
        <option>30</option>
        </select>
        </div>
.result {
            display: flex;
            justify-content: flex-end;
        }

        .result p {
            margin-top: 3.5%;
            font-size: 11px;
        }

        .result select {
            /* styling */
            background-color: white;
            border: thin solid #C4C4C4;
            border-radius: 4px;
            display: inline-block;
            font: inherit;
            line-height: 1.5em;
            padding: 0.5em 3.5em 0.5em 1em;
            /* reset */
            margin: 0;
            -webkit-box-sizing: border-box;
            -moz-box-sizing: border-box;
            box-sizing: border-box;
            -webkit-appearance: none;
            -moz-appearance: none;
        }
        /* arrows */

        .result select.classic {
            background-image: linear-gradient(58deg, transparent 50%, #222 50%), linear-gradient(120deg, #222 50%, transparent 50%), linear-gradient(to right, #DEDEDE, #DEDEDE);
            background-position: calc(100% - 19px) calc(1em + 2px), calc(100% - 15px) calc(1em + 2px), 100% 0;
            background-size: 5px 5px, 5px 5px, 2.5em 3em;
            background-repeat: no-repeat;
            margin-bottom: 14px;
            margin-left: 10px;
        }

        .result select.classic:focus {
            background-image: linear-gradient(58deg, white 50%, transparent 50%), linear-gradient(120deg, transparent 50%, white 50%), linear-gradient(to right, gray, gray);
            background-position: calc(100% - 16px) 1em, calc(100% - 20px) 1em, 100% 0;
            background-size: 5px 5px, 5px 5px, 2.5em 2.5em;
            background-repeat: no-repeat;
            border-color: grey;
            outline: 0;
        }
  • 気になる質問をクリップする

    クリップした質問は、後からいつでもマイページで確認できます。

    またクリップした質問に回答があった際、通知やメールを受け取ることができます。

    クリップを取り消します

  • 良い質問の評価を上げる

    以下のような質問は評価を上げましょう

    • 質問内容が明確
    • 自分も答えを知りたい
    • 質問者以外のユーザにも役立つ

    評価が高い質問は、TOPページの「注目」タブのフィードに表示されやすくなります。

    質問の評価を上げたことを取り消します

  • 評価を下げられる数の上限に達しました

    評価を下げることができません

    • 1日5回まで評価を下げられます
    • 1日に1ユーザに対して2回まで評価を下げられます

    質問の評価を下げる

    teratailでは下記のような質問を「具体的に困っていることがない質問」、「サイトポリシーに違反する質問」と定義し、推奨していません。

    • プログラミングに関係のない質問
    • やってほしいことだけを記載した丸投げの質問
    • 問題・課題が含まれていない質問
    • 意図的に内容が抹消された質問
    • 過去に投稿した質問と同じ内容の質問
    • 広告と受け取られるような投稿

    評価が下がると、TOPページの「アクティブ」「注目」タブのフィードに表示されにくくなります。

    質問の評価を下げたことを取り消します

    この機能は開放されていません

    評価を下げる条件を満たしてません

    評価を下げる理由を選択してください

    詳細な説明はこちら

    上記に当てはまらず、質問内容が明確になっていない質問には「情報の追加・修正依頼」機能からコメントをしてください。

    質問の評価を下げる機能の利用条件

    この機能を利用するためには、以下の事項を行う必要があります。

回答 1

+1

「:active」を使ってみてはいかがでしょうか?

.result select.classic:active {
  background-image: linear-gradient(58deg, white 50%, transparent 50%), linear-gradient(120deg, transparent 50%, white 50%), linear-gradient(to right, gray, gray);
  background-position: calc(100% - 16px) 1em, calc(100% - 20px) 1em, 100% 0;
  background-size: 5px 5px, 5px 5px, 2.5em 2.5em;
  background-repeat: no-repeat;
  border-color: grey;
  outline: 0;
}

投稿

  • 回答の評価を上げる

    以下のような回答は評価を上げましょう

    • 正しい回答
    • わかりやすい回答
    • ためになる回答

    評価が高い回答ほどページの上位に表示されます。

  • 回答の評価を下げる

    下記のような回答は推奨されていません。

    • 間違っている回答
    • 質問の回答になっていない投稿
    • スパムや攻撃的な表現を用いた投稿

    評価を下げる際はその理由を明確に伝え、適切な回答に修正してもらいましょう。

  • 2020/05/26 00:00

    activeを使用しましたが、PC版のみでSP版はうまく動きませんでした。

    下記URLの方法を試しましたが、うまく動作していない状況です。
    https://analogstd.com/pc/iphone-hover-click-faq/
    https://iholdings.jp/archives/2504

    キャンセル

15分調べてもわからないことは、teratailで質問しよう!

  • ただいまの回答率 87.49%
  • 質問をまとめることで、思考を整理して素早く解決
  • テンプレート機能で、簡単に質問をまとめられる

関連した質問

同じタグがついた質問を見る