Tôi cố gắng để tùy biến giao diện và cảm nhận của các hộp kiểm bên trong trang web ASP.NET MVC của tôi, sử dụng một kỹ thuật giống như một chi tiết ở đây: http://cssdeck.com/labs/css-checkbox-stylesMVC checkbox thêm ẩn trong các hình thức vi phạm tùy chỉnh css hộp kiểm
Họ làm việc lớn trừ khi được đặt trong một biểu mẫu. Khi sử dụng phương thức @ Html.CheckBoxFor(), MVC thêm một hộp kiểm ẩn phụ, rõ ràng để đảm bảo rằng giá trị được gửi tới biểu mẫu POST khi hộp kiểm không được chọn: asp.net mvc: why is Html.CheckBox generating an additional hidden input
Khi hộp kiểm ẩn bổ sung đang bật biểu mẫu, hộp kiểm tuỳ chỉnh của tôi không hoạt động. Tôi nhấp vào nó nhưng nó không chuyển đổi giữa các tiểu bang. Nếu tôi xóa hộp kiểm ẩn phụ, thì nó hoạt động, nhưng tôi đoán tôi sẽ gặp phải các vấn đề khi gửi POST.
Đây là html thức:
<div class="kbcheckbox">
<input checked="checked" data-val="true" data-val-required="The Approved field is required." id="UserEdit_IsApproved" name="UserEdit.IsApproved" type="checkbox" value="true">
<input name="UserEdit.IsApproved" type="hidden" value="false">
<label for="UserEdit_IsApproved"></label></div>
</div>
Và đây là css Tôi đang sử dụng (dùng SCSS)
.kbcheckbox {
width: $checkbox_size;
height: $checkbox_size;
position: relative;
input[type="checkbox"]{
visibility: hidden;
}
label {
cursor: pointer;
position: absolute;
width: $checkbox_size;
height: $checkbox_size;
top: 0;
left: 0;
border-radius: $control_corner_radius;
border: 1px solid $control_border_color;
/*@include box-shadow(1px, 1px, 1px, 0, $control_border_color, inset);*/
/*@include box-shadow(0px, 1px, 0px, $control_background);*/
background: white;
}
label:after {
opacity: 0;
content: '';
position: absolute;
width: $checkbox_size * 0.62;
height: $checkbox_size * 0.25;
background: transparent;
top: $checkbox_size * 0.2;
left: $checkbox_size * 0.1;
border: 3px solid black;
border-top: none;
border-right: none;
@include transform(rotate(-45deg));
}
label:hover {
background: darken($control_background, 10%);
}
input[type=checkbox]:checked + label:after {
opacity: 1;
}
}
Bất kỳ ý tưởng?
1 Tôi đang gặp một vấn đề tương tự với một chủ đề từ WrapBootstrap. Ý tưởng duy nhất tôi có là tạo ra một hàm JS để di chuyển đầu vào ẩn vào một vị trí thích hợp hơn. Bạn có bao giờ quản lý để giải quyết vấn đề này theo cách khác không? – philreed
Tôi vừa hỏi một câu hỏi tương tự ở đây. Tôi không thấy cái này http://stackoverflow.com/questions/18368500/default-css3-checkbox-template-in-mvc – Jammer