在爲我的應用程序創建表單時,我必須製作一個自定義複選框(我對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