css - 当输入在标签内时,什么 CSS 选择器可以修改复选框标签?

标签 css checkbox django-forms

我正在尝试替换默认的浏览器复选框样式,但我的输入在我的标签内。

我正在使用 Django,CheckboxSelectMultiple 字段的表单输出如下所示:

<label for="id_field">Field Name</label>
<ul id="id_field">
<li><label for="id_field_0"><input id="id_field_0" name="field" type="checkbox" value="0" /> Field 1 Name</label></li>
<li><label for="id_field_1"><input id="id_field_1" name="field" type="checkbox" value="1" /> Field Name 2</label></li>
</ul>

我仍然可以正常设置标签样式,但是如何在 #id_field_0:checked 时更改标签样式? CSS 没有办法回到父对象,是吗?我可以使用什么选择器来完成这个?

最佳答案

演示 - http://jsfiddle.net/victor_007/vjp9f7L2/8/

使用 span 来设置 checkbox:before pseudo

* {
  margin: 0;
  padding: 0;
}
label {
  display: inline-block;
}
label > input + span {
  cursor: pointer;
}
span {
  display: block;
}
label > span.check {
  background: url('http://cdn.flaticon.com/png/32/24396.png');
  width: 32px;
  height: 32px;
}
label > input {
  position: absolute;
  visibility: hidden;
  width: 32px;
  height: 32px;
}
label > input:checked + span:before {
  content: url('http://cdn.flaticon.com/png/32/60731.png');
  display: block;
}
<label>
  <input id="" type="checkbox" value="" name="" /> <span class="check"></span>

</label>
<label>
  <input id="" type="checkbox" value="" name="" /> <span class="check"></span>

</label>
<label>
  <input id="" type="checkbox" value="" name="" /> <span class="check"></span>

</label>

关于css - 当输入在标签内时,什么 CSS 选择器可以修改复选框标签?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/26501827/

相关文章:

html - div之间的空白

VBA动态复选框定位

java - 重启 Android 后自定义小部件中的 Android 持久可检查菜单

javascript - 一次切换多个复选框

django - 我如何在管理员之外复制 admin.TabularInline(在用户端?)

html - `Position: relative` 被忽略了吗?

html - 使 div 影响悬停时的先例 div?

Django:在管理中的 "clean"之后执行的方法

python - Django 在数据库中保存带有额外字符的表单字符串 (u'string')

CSS Transform 不会增加父 div 高度