カスタムラジオボタンを作成しようとしています。ラジオボタンのクリックを達成するためにカスタムdivにラベルを張る方法
<div style="margin-left:30px;">
<div class='container'>
<input type="radio" id="rdArts" name="itemcat">
<label for="rdArts">Arts</label>
<div class="check"></div>
</div>
<div class='container'>
<input type="radio" id="rdElectronics" name="itemcat">
<label for="rdElectronics">Electronics</label>
<div class="check"></div>
</div>
<div class='container'>
<input type="radio" id="rdCars" name="itemcat">
<label for="rdCars">Cars</label>
<div class="check"></div>
</div>
</div>
と、このCSS:
.container{
float:left;
position:relative;
margin-right:20px;
}
.container input[type=radio]{
position: absolute;
visibility: hidden;
}
.container label{
display: block;
position: ;
font-weight: 300;
font-size: 1.2em;
padding: 25px 25px 25px 10px;
margin: 10px auto;
height: 30px;
z-index: 9;
cursor: pointer;
-webkit-transition: all 0.25s linear;
}
.container:hover label{
color: #485776;
}
.container:hover .check{
border-color: #485776;
}
.container:hover .check::border{
background-color: #485776;
}
.container .check{
display: block;
position: relative;
border: 4px solid #333E54;
border-radius: 100%;
height: 15px;
width: 15px;
top: -67px;
left: -25px;
z-index: 5;
transition: border .25s linear;
-webkit-transition: border .25s linear;
}
.container .check::before {
display: block;
position: relative;
content: '';
border-radius: 100%;
height: 11px;
width: 11px;
top: 2px;
left: 0px;
margin: auto;
transition: background 0.25s linear;
-webkit-transition: background 0.25s linear;
}
input[type=radio]:checked ~ .check::before{
background: #333E54;
}
私が取得することができる午前アイテムがhorizontally.Consider次のHTMLをレイアウトされているように、私は少し微調整したいthisきちんとしたスタイルを見つけましたこの:
唯一の問題は、私は擬似ラジオボタン自体上で動作するようにクリックして取得することはできませんです。私はラベルをクリックする必要があります。理由は、私の場合、ラベルが ".check" divに伸びないからです。 divにオーバーレイさせるために私のレーベルにどのようなスタイルを付けるべきですか?フルHTMLとCSSを見たい場合は、hereです。これは動作するはず
ただ、ラベル内の入力を置きます。 –
@MrLister、それは対応するラベルがクリックされたときにチェックボックスまたはラジオボタンのクリックを達成する別の方法であることが分かりました。その場合、 "for"属性を指定する必要はありません。しかし、私のHTMLを見れば、実際のラジオを隠していて、別のdiv要素でそのクリックを模倣していることがわかります。 –
入力と.checkの両方をラベルの中に入れてください。 [ここでは、フィドル](https://jsfiddle.net/MrLister/9hy9j12k/)。 –