MVC 5 Bootstrap Checkbox CSS问题

时间:2014-07-17 17:51:08

标签: css html5 asp.net-mvc-5

我有一个注册表单,但复选框不会表现为明智。输入字段有占位符,我希望文本显示在复选框的左侧,文本对齐为页面上的所有占位符。

到目前为止,我要么在复选框上面有文字(它在标签中居中都是单独的)或者在下面。下面是我的注册页面和相关的CSS。我无法弄明白,请帮助。

Register.cshtml

<div class="row">
    <article class="span7">
        <section class="block-indent-1 maxheight">
            <h2>@ViewBag.Title.</h2>
            <p>Please take care when entering your details as they will determine your access and operation of this website.</p>
            <p>Please note that all fields marked with an asterisk * must be completed in order for you to become a registered user.</p>
        </section>
    </article>
    <article class="span5">
        <section class="block-indent-1 divider-left maxheight">
            <h2>Sign Up Here</h2>
            @using (Html.BeginForm("Register", "Account", FormMethod.Post, new { @id = "contact-form", role = "form" }))
            {
                @Html.AntiForgeryToken()
                @Html.ValidationSummary("", new { @class = "text-danger" })
                <fieldset>
                    <div class="form-div-5">
                        <label>
                            @Html.DropDownListFor(model => model.TitleId, TitleModel.TitleList)
                        </label>
                    </div>
                    <div class="form-div-5">
                        <label>
                            @Html.DropDownListFor(model => model.SexId, SexModel.SexList)
                        </label>
                    </div>
                    <div class="form-div-5">
                        <label>
                            @Html.TextBoxFor(m => m.Forename, new { @placeholder = "Forename *", @type = "text", required = "required" })
                        </label>
                    </div>
                    <div class="form-div-5">
                        <label>
                            @Html.TextBoxFor(m => m.Surname, new { @placeholder = "Surname *", @type = "text", required = "required" })
                        </label>
                    </div>
                    <div class="form-div-5">
                        <label>
                            @Html.TextBoxFor(m => m.Email, new { @placeholder = "Email Address *", @type = "email", required = "required" })
                        </label>
                    </div>
                    <div class="form-div-5">
                        <label>
                            @Html.TextBoxFor(m => m.UserName, new { @placeholder = "Username *", @type = "text", @pattern = "[a-zA-Z0-9]{6,}", @title = "Your username must have no spaces or special characters and must be at least 6 characters long.", required = "required" })
                        </label>
                    </div>
                    <div class="form-div-5">
                        <label>
                            @Html.PasswordFor(m => m.Password, new { @placeholder = "Password *", @type = "password", required = "required" })
                        </label>
                    </div>
                    <div class="form-div-5">
                        <label>
                            @Html.PasswordFor(m => m.ConfirmPassword, new { @placeholder = "Confirm Password *", @type = "password", required = "required" })
                        </label>
                    </div>
                    <div class="form-div-5">
                        <label class="checkbox-inline">
                            @Html.CheckBoxFor(m => m.AcceptsTerms) @Html.LabelFor(m => m.AcceptsTerms)
                        </label>
                    </div>
                    <div class="button-wrapper">
                        <input type="submit" class="button" value="Register" /> <input type="reset" value="Reset" name="MFReset" class="button"><span>* Required Fields</span>
                    </div>
                </fieldset>
            }
        </section>
    </article>
</div>

的site.css

#contact-form {
  position: relative;
  z-index: 1;
  margin: 0 0 20px;
  padding: 6px 0 0 0;
  vertical-align: top;
  font-family: Arial, Helvetica, sans-serif;
}
#contact-form .error {
  display: block;
  overflow: hidden;
  position: absolute;
  height: 0px;
  font-size: 10px;
  color: #F00;
  -webkit-transition: all 0.3s ease-out;
  -moz-transition: all 0.3s ease-out;
  -o-transition: all 0.3s ease-out;
  transition: all 0.3s ease-out;
}
.txt-form {
  display: block;
  padding-bottom: 6px;
  color: #ffffff;
}
.txt-form span {
  color: #ffffff;
}
.form-div-1,
.form-div-2,
.form-div-3 {
  float: left;
  width: 183px;
}
.form-div-1 {
  margin-right: 21px;
}
.form-div-2 {
  margin-right: 21px;
}
#contact-form div {
  overflow: hidden;
}
#contact-form fieldset {
  position: relative;
  z-index: 10;
  overflow: hidden;
  padding: 0;
  width: 100%;
  border: none;
}

#contact-form label .checkbox {
color:#15221E;
height:40px;
text-align:left;
width:324px
}

#contact-form select {
  display: block !important;
  margin-bottom: 2px;
  width: 100%;
  border: 1px solid #000;
  background: #e1e3e2;
  color: #acacac;
  font-size: 13px;
  line-height: 20px !important;
  font-family: Arial, Helvetica, sans-serif;
  cursor: pointer;
}

#contact-form select option {
  padding-bottom: 3px;
}

#contact-form label {
  position: relative;
  display: block;
  float: left;
  margin: 0;
  padding: 0;
  min-height: 60px;
  width: 100%;
}
#contact-form .message {
  display: block !important;
  min-height: 251px;
  width: 100%;
}
#contact-form input,
#contact-form textarea {
  -webkit-box-shadow: inset 1px 0 3px rgba(0, 0, 0, 0.32);
  -moz-box-shadow: inset 1px 0 3px rgba(0, 0, 0, 0.32);
  box-shadow: inset 1px 0 3px rgba(0, 0, 0, 0.32);
  -webkit-border-radius: 5px;
  -moz-border-radius: 5px;
  border-radius: 5px;
  -webkit-box-sizing: border-box;
  -moz-box-sizing: border-box;
  box-sizing: border-box;
  float: left;
  margin: 0;
  padding: 10px 10px 7px;
  width: 100%;
  outline: none;
  border: none;
  background: #e1e3e2;
  color: #acacac;
  font-size: 13px;
  line-height: 20px !important;
  font-family: Arial, Helvetica, sans-serif;
}
#contact-form input {
  height: 37px;
}
#contact-form input:focus,
#contact-form textarea:focus {
  -webkit-box-shadow: none;
  -moz-box-shadow: none;
  box-shadow: none;
}
#contact-form .area .error {
  float: none;
}
#contact-form textarea {
  overflow: auto;
  width: 100%;
  height: 287px;
  resize: none;
}
#contact-form .success {
  position: absolute;
  top: 4px;
  left: 0;
  z-index: 20;
  -webkit-border-radius: 5px;
  -moz-border-radius: 5px;
  border-radius: 5px;
  display: none;
  -webkit-box-sizing: border-box;
  -moz-box-sizing: border-box;
  box-sizing: border-box;
  padding: 14px 10px;
  width: 100%;
  border: 1px solid #000;
  background: #e5412a;
  color: #ffffff;
  text-align: center;
  text-transform: none;
  font-size: 18px;
  font-family: Arial, Helvetica, sans-serif;
  line-height: 22px;
}
#contact-form .error,
#contact-form .empty {
  position: absolute;
  bottom: 1px;
  left: 2px;
  display: none;
  overflow: hidden;
  padding: 5px 4px 0px 0;
  width: 100%;
  color: #f00;
  text-transform: none;
  font-size: 11px;
  line-height: 1.27em;
  font-family: Arial, Helvetica, sans-serif;
}
#contact-form .message .error,
#contact-form .message .empty {
  bottom: 5px;
}

.checkbox {
    display: inline-block;
    cursor: pointer;
    font-size: 13px;
    margin-right:40px; line-height:37px;
}
input[type=checkbox] {
    /*display:none;*/
}
.checkbox:before {
    content: "";
    display: inline-block;
    width: 37px;
    height: 37px;
    vertical-align:middle;
    background: #e1e3e2;
    color: #acacac;
    text-align: center;
    box-shadow: inset 0px 2px 3px 0px rgba(0, 0, 0, .3), 0px 1px 0px 0px rgba(255, 255, 255, .8); 
    border-radius: 3px;
}
input[type=checkbox]:checked + .checkbox:before {
    content: "\2713";
    text-shadow: 1px 1px 1px rgba(0, 0, 0, .2);
    font-size: 15px;
}

非常感谢任何帮助: - )

1 个答案:

答案 0 :(得分:0)

尝试使用DisplayNameFor代替LabelFor,因为您已经有了包装标签。

<label class="checkbox-inline">
    @Html.CheckBoxFor(m => m.AcceptsTerms) @Html.DisplayNameFor(m => m.AcceptsTerms)
</label>

谢谢!