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

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

ただいまの
回答率

91.23%

  • HTML5

    2986questions

    HTML5 (Hyper Text Markup Language、バージョン 5)は、マークアップ言語であるHTMLの第5版です。

  • CSS3

    1535questions

    CSS(Cascading Style Sheet)の第3版です。CSS3と略されることが多いです。色やデザインを柔軟に変更することが可能になります。

チェックボックスとラベルを装飾したい

解決済

回答 1

投稿

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

前提・実現したいこと

CSSを使って、隠しチェックボックスがチェックされるとメニューが表示されるようにしています。
(実際は抜粋部分以外に10個くらい同じようなものが並んでいます)

発生している問題・エラーメッセージ

チェックされている間、labelの背景色を変更したいのですがうまくいきません。
お手数ですがご教示ください。

該当のソースコード

HTML

<label for="label3">チャットパレット</label>
<input type="checkbox" id="label3" class="cssacc" />
<div class="accshow">

<form action="" method="POST">
<input type="textarea" style="width:275px;height:40px" placeholder="チャット入力" name="chat">
<input type="submit" value="送信">
</form>

</div>

CSS
/*ラベル*/
.accbox label  { /*M*/
display: block;
margin: 0;
padding : 0px;
color :#fff;
font-size: 24px;
font-weight: bold;
background :#7a6216;
border: double;
border-color: #fff;
cursor :pointer;
}

/*ラベルにマウスを乗せた時*/
.accbox label:hover {
background :#ca6964;
}

.accbox label + input[type=checkbox]{
background: #fff;
}

/*チェックボックスは隠す*/
.accbox input[type=checkbox] {
display: none;
}

/*中身を非表示にしておく*/
.accbox .accshow {
height: 0;
padding: 0;
overflow: hidden;
opacity: 0;
}

/*クリックで中身表示*/
.cssacc:checked + .accshow {
height: auto;
padding: 5px;
background: #6f767d;
color: #eee;
opacity: 1;
}

  • 気になる質問をクリップする

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

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

    クリップを取り消します

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

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

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

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

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

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

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

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

    質問の評価を下げる

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

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

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

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

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

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

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

    詳細な説明はこちら

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

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

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

回答 1

checkベストアンサー

0

質問者さんが実現したいことは、以下のように行えると思いますが、いかがでしょうか?

<!DOCTYPE html>
<html lang="ja">
<head>
    <meta charset="UTF-8">
    <title>タイトル</title>
    <style>
        /*ラベル*/
        .accbox label { /*M*/
            display: block;
            margin: 0;
            padding: 0px;
            color: #fff;
            font-size: 24px;
            font-weight: bold;
            background: #7a6216;
            border: double;
            border-color: #fff;
            cursor: pointer;
        }

        /*ラベルにマウスを乗せた時*/
        .accbox label:hover {
            background: #ca6964;
        }

        input[type=checkbox] + label {
            background: #fff;
        }

        /*チェックボックスは隠す*/
        .accbox input[type=checkbox] {
            display: none;
        }

        /*中身を非表示にしておく*/
        .accbox .accshow {
            height: 0;
            padding: 0;
            overflow: hidden;
            opacity: 0;
        }

        /*クリックで中身表示*/
        .cssacc:checked ~ .accshow {
            height: auto;
            padding: 5px;
            background: #6f767d;
            color: #eee;
            opacity: 1;
        }
    </style>
</head>
<body>
<div class="accbox">
    <input type="checkbox" id="label1" class="cssacc">
    <label for="label1">チャットパレット</label>
    <div class="accshow">

        <form action="" method="POST">
            <input type="textarea" style="width:275px;height:40px" placeholder="チャット入力" name="chat">
            <input type="submit" value="送信">
        </form>
    </div>
</div>
<div class="accbox">
    <input type="checkbox" id="label2" class="cssacc">
    <label for="label2">チャットパレット</label>
    <div class="accshow">

        <form action="" method="POST">
            <input type="textarea" style="width:275px;height:40px" placeholder="チャット入力" name="chat">
            <input type="submit" value="送信">
        </form>
    </div>
</div>
<div class="accbox">
    <input type="checkbox" id="label3" class="cssacc">
    <label for="label3">チャットパレット</label>
    <div class="accshow">

        <form action="" method="POST">
            <input type="textarea" style="width:275px;height:40px" placeholder="チャット入力" name="chat">
            <input type="submit" value="送信">
        </form>
    </div>
</div>
<div class="accbox">
    <input type="checkbox" id="label4" class="cssacc">
    <label for="label4">チャットパレット</label>
    <div class="accshow">

        <form action="" method="POST">
            <input type="textarea" style="width:275px;height:40px" placeholder="チャット入力" name="chat">
            <input type="submit" value="送信">
        </form>
    </div>
</div>
<div class="accbox">
    <input type="checkbox" id="label5" class="cssacc">
    <label for="label5">チャットパレット</label>
    <div class="accshow">

        <form action="" method="POST">
            <input type="textarea" style="width:275px;height:40px" placeholder="チャット入力" name="chat">
            <input type="submit" value="送信">
        </form>
    </div>
</div>
</body>
</html>

投稿

編集

  • 回答の評価を上げる

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

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

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

  • 回答の評価を下げる

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

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

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

  • 2017/12/23 16:25

    ご回答ありがとうございます。
    labelの位置見直し&~の使い方が勉強になりました、無事動作してくれました!

    キャンセル

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

ただいまの回答率

91.23%

関連した質問

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

  • HTML5

    2986questions

    HTML5 (Hyper Text Markup Language、バージョン 5)は、マークアップ言語であるHTMLの第5版です。

  • CSS3

    1535questions

    CSS(Cascading Style Sheet)の第3版です。CSS3と略されることが多いです。色やデザインを柔軟に変更することが可能になります。