2017-01-23 35 views
0

を示していない後、私は、チェックボックスのための擬似要素の後に::前に::追加しようとしていますが、psudo要素は、我々はCSSとHTMLの次のチェックボックス項目擬似要素は

にチェックしたときに表示されないの後、私は

を使用していました

.multiselect-container li input { 
 
    opacity: 0; 
 
    position: relative !important; 
 
    left: -4px; 
 
    top: 2px; 
 
    z-index: 999; 
 
} 
 
.multiselect-container li { 
 
    position: relative; 
 
} 
 
.multiselect-container li label { 
 
    padding: 4px 20px 3px 40px !important; 
 
} 
 
.multiselect-container li span::before { 
 
    width: 20px; 
 
    height: 20px; 
 
    border: 1px solid #ccc; 
 
    position: absolute; 
 
    content: ''; 
 
    left: 12px; 
 
    top: 5px; 
 
} 
 
.multiselect-container li span::after { 
 
    width: 18px; 
 
    height: 18px; 
 
    background: #093c73 url(../images/tick.png) no-repeat 2px 2px; 
 
    position: absolute; 
 
    content: ''; 
 
    left: 13px; 
 
    top: 6px; 
 
    display: none; 
 
} 
 
.multiselect-container li input[type="checkbox"]:checked + .multiselect-container li span::after { 
 
    display: block; 
 
}
<ul class="multiselect-container"> 
 
    <li> 
 
    <label class="checkbox"> 
 
     <input type="checkbox" value="option1">Option1</label> 
 
    <span></span> 
 
    </li> 
 
</ul>

+0

あなたの最後の選択は間違っています。 '.multiselect-container li span'セレクタと一致する要素を選択しようとしていますが、チェックされている入力フィールドの次の兄弟型ですが、もちろんそのような要素はありません。 – CBroe

答えて

1

ダブルHTMLの構造対CSSのセレクタをご確認ください。 セレクタをCSSで入力したようにすることはできません。チェックボックスを、ないラベルの後に:

スパンは入力直後に来る必要があります。

.multiselect-container li input { 
 
    opacity: 0; 
 
    position: relative !important; 
 
    left: -4px; 
 
    top: 2px; 
 
    z-index: 999; 
 
} 
 

 
.multiselect-container li { 
 
    position: relative; 
 
} 
 

 
.multiselect-container li label { 
 
    padding: 4px 20px 3px 40px !important; 
 
} 
 

 
.multiselect-container li span::before { 
 
    width: 20px; 
 
    height: 20px; 
 
    border: 1px solid #ccc; 
 
    position: absolute; 
 
    content: ''; 
 
    left: 12px; 
 
    top: 5px; 
 
} 
 

 
.multiselect-container li span::after { 
 
    width: 18px; 
 
    height: 18px; 
 
    background: #093c73 url(../images/tick.png) no-repeat 2px 2px; 
 
    position: absolute; 
 
    content: ''; 
 
    left: 13px; 
 
    top: 6px; 
 
    display: none; 
 
} 
 

 
.multiselect-container li input[type="checkbox"]:checked + span::after { 
 
    display: block; 
 
}
<ul class="multiselect-container"> 
 
    <li> 
 
    <label class="checkbox"> 
 
     <input type="checkbox" value="option1">Option1 
 
     <span></span> 
 
    </label> 
 
    </li> 
 
</ul>