I am trying to add strikethrough when i select a checkbox in my form (Bootstrap v3). I coded this 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>
and added a class in css
.strikethrough:checked{
text-decoration:line-through;
}
but it doesn't work..
Here is a solution to put a strike through when your input is checked:
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;
}
JSFIDDLE
With this solution when ever the checkbox is checked it will do something to the label. so you could make it bold or change its colour if you wanted.
Problem is that you are trying to apply line-through
on checkbox where as the text is inside the label. You can wrap the text inside a <span>
and alter it's CSS on :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
}
Bootply
The :checked
CSS pseudo-class selector represents any radio (<input
type="radio">
), checkbox (<input type="checkbox">
) or option (<option>
in a <select>
) element that is checked or toggled to an on state. The
user can change this state by clicking on the element, or selecting a
different value, in which case the :checked pseudo-class no longer
applies to this element, but will to the relevant one.
Source: https://developer.mozilla.org/en-US/docs/Web/CSS/%3Achecked
In order to make it work, rearrange your HTML to:
<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>
And your CSS to:
.strikethrough:checked + label {
text-decoration:line-through
}
DEMO.
This worked for me.
li.my-item:hover span { visibility: visible; }
li.my-item span { visibility:hidden; }