Hi!
I have a stylized checkbox from a website template. On many pages it works well together with asp-for. But there is some kind of mysticism going on one user registration page. If I add asp-for, the checkbox just disappears somewhere. I didn't create CSS for this checkbox, but if I delete these styles, everything works as it should - but then the checkbox looks standard. What could be wrong with CSS that makes this checkbox disappear, and only on this page? But I need a stylized checkbox.
Thanks!
Checkbox CSS:
input[type="checkbox"],
input[type="radio"] {
-moz-appearance: none;
-webkit-appearance: none;
-ms-appearance: none;
appearance: none;
display: block;
float: left;
margin-right: -2em;
opacity: 0;
width: 1em;
z-index: -1;
}
input[type="checkbox"] + label,
input[type="radio"] + label {
text-decoration: none;
color: #646464;
cursor: pointer;
display: inline-block;
font-size: 1em;
font-weight: 400;
padding-left: 2.4em;
padding-right: 0.75em;
position: relative;
}
input[type="checkbox"] + label:before,
input[type="radio"] + label:before {
-moz-osx-font-smoothing: grayscale;
-webkit-font-smoothing: antialiased;
display: inline-block;
font-style: normal;
font-variant: normal;
text-rendering: auto;
line-height: 1;
text-transform: none !important;
font-family: 'Font Awesome 5 Free';
font-weight: 900;
}
input[type="checkbox"] + label:before,
input[type="radio"] + label:before {
background: rgba(160, 160, 160, 0.075);
border: solid 1px rgba(160, 160, 160, 0.3);
content: '';
display: inline-block;
font-size: 0.8em;
height: 2.0625em;
left: 0;
line-height: 2.0625em;
position: absolute;
text-align: center;
top: 0;
width: 2.0625em;
}
input[type="checkbox"]:checked + label:before,
input[type="radio"]:checked + label:before {
background: #3c3b3b;
border-color: #3c3b3b;
color: #ffffff;
content: '\f00c';
}
input[type="checkbox"]:focus + label:before,
input[type="radio"]:focus + label:before {
border-color: #2ebaae;
box-shadow: 0 0 0 1px #2ebaae;
}
input[type="radio"] + label:before {
border-radius: 100%;
}
Register Page Code:
@model ApplicationUser
@{
ViewData["Title"] = "Create";
}
<br />
@inject LanguageService language
<h2 class="text-info">@language.Getkey("registration")</h2>
<form asp-action="Create" method="post" id="user-form" enctype="multipart/form-data">
<div class="p-4 rounded border">
<div asp-validation-summary="ModelOnly" class="text-danger"></div>
<h3>@ViewBag.message</h3>
<div class="form-group row">
<div class="col-2">
<label asp-for="Login">@language.Getkey("login_name*")</label>
</div>
<div class="col-5">
<input asp-for="Login" class="form-control" exp/>
</div>
<span class="text-danger">@language.Getkey("login_requires")</span>
</div>
<div class="form-group row">
<div class="col-2">
<label asp-for="Email">@language.Getkey("email*")</label>
</div>
<div class="col-5">
<input asp-for="Email" class="form-control"/>
</div>
<span class="text-danger">@language.Getkey("required")</span>
</div>
<br></br>
<div class="form-group row">
<div class="col-2">
<label asp-for="PasswordHash">@language.Getkey("password*")</label>
</div>
<div class="col-5">
<form action="">
<div class="form-item">
<input asp-for="PasswordHash" type="password" class="form-control form-control-lg" id="password" placeholder="password"/>
</div>
</form>
</div>
<span class="text-danger">@language.Getkey("password_requires")</span>
</div>
<br></br>
<div class="form-group row">
<div class="col-2">
<label asp-for="FirstName">@language.Getkey("first_name*")</label>
</div>
<div class="col-5">
<input asp-for="FirstName" class="form-control"/>
</div>
<span class="text-danger">@language.Getkey("required")</span>
</div>
<div class="form-group row">
<div class="col-2">
<label asp-for="LastName">@language.Getkey("last_name*")</label>
</div>
<div class="col-5">
<input asp-for="LastName" class="form-control" />
</div>
<span class="text-danger">@language.Getkey("required")</span>
</div>
<br></br>
<div class="form-group row">
<div class="checkbox">
<div class="form-check">
<input type=checkbox asp-for="SendNews" class="form-check-input" id="checkNews"/>
<label class="form-check-label" asp-for="SendNews" for="checkNews">@language.Getkey("news")</label>
</div>
</div>
</div>
<div class="form-group">
<a asp-area="Customer" asp-action="Index" asp-controller="Home" class="button large">@language.Getkey("general")</a>
<input type="submit" class="button large" value="@language.Getkey("register")"/>
</div>
</div>
</form>
@section Scripts{
@{
await Html.RenderPartialAsync("_ValidationScriptsPartial");
}
<script>
$(document).ready(function () {
$("#user-form").validate({
rules: {
Login : {
required: true
},
Email : {
required: true
},
PasswordHash : {
required: true
},
FirstName : {
required: true
},
LastName : {
required: true
}
},
messages: {
Login: '@language.Getkey("unique_login_is_required")',
Email: '@language.Getkey("email_is_required")',
PasswordHash: '@language.Getkey("password_is_required")',
FirstName: '@language.Getkey("first_name_is_required")',
LastName: '@language.Getkey("last_name_is_required")'
}
});
});
</script>
}
if I delete asp-for like this, I see css checkbox (but I need asp-for):
<div class="form-group row">
<div class="checkbox">
<div class="form-check">
<input type=checkbox class="form-check-input" id="checkNews"/>
<label class="form-check-label" for="checkNews">@language.Getkey("news")</label>
</div>
</div>
</div>