J'essaie d'ajouter un barré lorsque je coche une case dans ma fiche (Bootstrap v3). J'ai codé ceci bootply :
<div class="form-group ">
<label for="inputName" class="col-md-1 control-label">select</label>
<div class="col-md-5">
<div class="checkbox">
<label><input type="checkbox" name="packersOff" class="strikethrough" value="1">sssssssss</label>
</div>
</div>
</div>
et ajouté une classe en css
.strikethrough:checked{
text-decoration:line-through;
}
mais ça ne marche pas ..
Voici une solution à mettre en grève lorsque votre entrée est vérifiée:
HTML:
<div class="form-group ">
<label for="inputName" class="col-md-1 control-label">select</label>
<div class="col-md-5">
<div class="checkbox">
<input type="checkbox" name="packersOff" value="1"/>
<label class="strikethrough">sssssssss</label>
</div>
</div>
</div>
CSS
input[type=checkbox]:checked + label.strikethrough{
text-decoration: line-through;
}
Avec cette solution, chaque fois que la case à cocher est cochée, cela apportera quelque chose à l'étiquette. afin que vous puissiez le rendre audacieux ou changer sa couleur si vous vouliez.
Le problème est que vous essayez d'appliquer line-through
dans la case à cocher où le texte est à l'intérieur de l'étiquette. Vous pouvez envelopper le texte dans un <span>
et modifier son code CSS le :checked
<div class="checkbox">
<label>
<input type="checkbox" name="packersOff" class="strikethrough" value="1">
<span>sssssssss</span>
</label>
</div>
.strikethrough:checked + span{
text-decoration:line-through
}
Le sélecteur de pseudo-classes CSS
:checked
représente tout élément radio (<input type="radio">
), case à cocher (<input type="checkbox">
) ou option (<option>
dans un<select>
) coché ou basculé sur un état actif. L'utilisateur peut modifier cet état en cliquant sur l'élément ou en sélectionnant une valeur différente. Dans ce cas, la pseudo-classe: Checked ne s'applique plus à cet élément, mais à l'élément concerné.
Source: https://developer.mozilla.org/en-US/docs/Web/CSS/%3Achecked
Afin de le faire fonctionner, réorganisez votre code HTML pour:
<div class="form-group ">
<label for="inputName" class="col-md-1 control-label">select</label>
<div class="col-md-5">
<div class="checkbox">
<input name="packersOff" class="strikethrough" value="1" type="checkbox">
<label for="packersOff">sssssssss</label>
</div>
</div>
</div>
Et votre CSS pour:
.strikethrough:checked + label {
text-decoration:line-through
}
.strikethrough:checked + .strikeThis {
text-decoration: line-through
}
<link href="https://cdnjs.cloudflare.com/ajax/libs/Twitter-bootstrap/3.3.5/css/bootstrap.min.css" rel="stylesheet"/>
<div class="form-group ">
<label for="inputName" class="col-md-1 control-label">select</label>
<div class="col-md-5">
<input name="packersOff" class="strikethrough" value="1" type="checkbox">
<label for="packersOff" class="strikeThis">sssssssss</label>
</div>
</div>
solution jQuery:
$('#packersOff').change(function() {
if ($('#packersOff').prop('checked') ) {
$('#test').css('text-decoration','line-through');
}
});
<script src="https://ajax.googleapis.com/ajax/libs/jquery/2.1.1/jquery.min.js"></script>
<div class="form-group ">
<label for="inputName" class="col-md-1 control-label">select</label>
<div class="col-md-5">
<div class="checkbox">
<label for="packersOff" id="test">sssssssss</label>
<input type="checkbox" name="packersOff" id="packersOff" class="strikethrough" value="1" />
</div>
</div>
</div>
Cela a fonctionné pour moi.
li.my-item:hover span { visibility: visible; }
li.my-item span { visibility:hidden; }