2017-03-20 16 views
0

このプロジェクトには、javascriptを使用できないという特殊性があります。要点は、チェックされていないラジオボタンに関連するコンテンツをすべて非表示にすることです。ページが読み込まれた後、すべてのコンテンツが表示されますが、1つのラジオボタンのコンテンツが選択された後、他のすべてのラジオボタンが消えるようにする必要があります。CSSでチェックされていないラジオボタンしか表示されない

これは私のマークアップです:

 <label> 
 
       <input type="radio" name="group1" value="1" /> 
 
       <div class="radio-sample"> 
 
        <img src="http://placehold.it/150x150"> 
 
        <div class="con"> 
 
         <p>"Neque porro quisquam est qui dolorem ipsum quia dolor sit amet, consectetur, adipisci velit..." 
 
          "There is no one who loves pain itself, who seeks after it and wants to have it, simply because it is pain..."</p> 
 
         <div type="button" class="btn btn-primary pull-right">1Primary</div> 
 
        </div> 
 
       </div> 
 
      </label> 
 

 
      <label> 
 
       <input type="radio" name="group1" value="2" /> 
 
       <div class="radio-sample"> 
 
        <img src="http://placehold.it/150x150"> 
 
        <div class="con"> 
 
         <p>"Neque porro quisquam est qui dolorem ipsum quia dolor sit amet, consectetur, adipisci velit..." 
 
          "There is no one who loves pain itself, who seeks after it and wants to have it, simply because it is pain..."</p> 
 
         <div type="button" class="btn btn-primary pull-right">2Primary</div> 
 
        </div> 
 
       </div> 
 
      </label> 
 
      <label> 
 
       <input type="radio" name="group1" value="3" /> 
 
       <div class="radio-sample"> 
 
        <img src="http://placehold.it/150x150"> 
 
        <div class="con"> 
 
         <p>"Neque porro quisquam est qui dolorem ipsum quia dolor sit amet, consectetur, adipisci velit..." 
 
          "There is no one who loves pain itself, who seeks after it and wants to have it, simply because it is pain..."</p> 
 
         <div type="button" class="btn btn-primary pull-right">2Primary</div> 
 
        </div> 
 
       </div> 
 
      </label>

+0

です。 – APAD1

+0

は、2つのラジオボタンのコンテンツのみで動作し、3つ以上は動作しません。これは指定しませんでしたが、要件です。 – lopezi

答えて

2

~(兄弟)セレクタで:checked擬似クラスを使用します。入力がすべてになるので、しかし

input[type=radio]:checked ~ div.radio-sample { 
    display: none; 
} 

最初にチェックを外すと、すべてのコンテンツが非表示になります。唯一の解決策は、ラジオボタンは、すべての最初に確認されているように、すべてのHTMLを設定することです:

<input type="radio" checked="checked" /> 

...その後、ユーザーがチェックし、その内容非表示になります他人1を選択した後。

+0

は2つのラジオボタンのコンテンツに対してのみ動作しますが、3つ以上は動作しませんしかし、私はコード – lopezi

1

:not(:checked)を使用すると、チェックされたセレクタを反転できます。

は、ここで例にのみCSSを使用できません

input[type=radio]:not(:checked)~.radio-sample { 
 
    display: none; 
 
}
<label> 
 
    <input type="radio" name="group1" value="1" /> 
 
    <div class="radio-sample"> 
 
    <img src="http://placehold.it/150x150"> 
 
    <div class="con"> 
 
     <p>Number 1</p> 
 
     <button>Primary button 1</button> 
 
    </div> 
 
    </div> 
 
</label> 
 

 
<label> 
 
    <input type="radio" name="group1" value="2" /> 
 
    <div class="radio-sample"> 
 
    <img src="http://placehold.it/150x150"> 
 
    <div class="con"> 
 
     <p>Number 2</p> 
 
     <button>Primary button 2</button> 
 
    </div> 
 
    </div> 
 
</label> 
 

 
<label> 
 
    <input type="radio" name="group1" value="3" /> 
 
    <div class="radio-sample"> 
 
    <img src="http://placehold.it/150x150"> 
 
    <div class="con"> 
 
     <p>Number 3</p> 
 
     <button>Primary button 3</button> 
 
    </div> 
 
    </div> 
 
</label>

+0

を更新する必要がありますが、これはうまくいくかもしれませんが、ページが読み込まれるときにすべてのラジオボタンを表示するにはどうすればいいですか?それらはデフォルトでは隠されていて、可視でなければなりません – lopezi

関連する問題