在为我的应用程序创建表单时,我必须制作一个自定义复选框(我对css非常糟糕,所以这不太容易)。我得到它的工作,它看起来像这样,当我手动创建表单:不能覆盖使用脆皮形式的复选框样式
手动html
是
<div class="checkbox icheck-primary">
{{ form.active }}
<label for="id_active">Active</label>
</div>
但在使用上的酥脆形式Field
它显示wrapper_class
属性时标准:
和crispy forms
代码:
self.helper.layout = Layout(
Fieldset(
'Add Contact',
'first_name',
Field('active', wrapper_class='icheck-primary', css_class='icheck-primary')
))
我试图用一个自定义的模板Div
但我无法得到它的工作。在文档中,我能找到的是wrapper_class
。
我是否错过了一些简单的东西,或者有人能指引我走向正确的方向?
[编辑]从crispy_forms
输出 HTML
:
<div id="div_id_active" class="checkbox icheck-primary">
<label for="id_active" class="">
<input name="active" class="checkboxinput" id="id_active" checked="" type="checkbox">
Active
</label>
</div>
这是我的手动/形式产生html
<div class="checkbox icheck-primary">
<input name="stay_logged_in" class="checkbox icheck-primary" id="id_stay_logged_in" type="checkbox">
<label for="id_stay_logged_in">Remember me</label>
</div>
[编辑2]这是的css selectors
.radio > input[type="radio"]:first-child:checked + label::before,
.checkbox > input[type="checkbox"]:first-child:checked + label::before,
.radio > input[type="radio"]:first-child:checked + input[type="hidden"] + label::before,
.checkbox > input[type="checkbox"]:first-child:checked + input[type="hidden"] + label::before {
content: "\e013";
display: inline-block;
font-family: 'Glyphicons Halflings';
font-weight: normal;
font-size: 10px;
color: #b4aba1;
position: absolute;
width: 22px;
height: 22px;
line-height: 20px;
border: 2px solid #b4aba1;
border-radius: 0 !important;
background-color: #0060a1 !important;
text-align: center;
margin-left: -29px;
vertical-align: text-top;
}
你能提供html和css,谢谢。 – sol
更新了问题,谢谢! –
什么是脆脆生成的HTML? CSS是什么样子?你有没有尝试过使用检查员?它看起来像CSS选择器不匹配输入。 – dirn