: проверено, не работает в css с псевдоэлементами - PullRequest
0 голосов
/ 05 марта 2020

Я работаю над проектом, в котором мои html сгенерированы drupal, поэтому я не могу изменить мои Html файлы. Я застрял в проблеме, где мне нужно сделать флажок настройки, хотя я установил флажок, но я не могу поставить галочку на нем.

Вот мой код

#login-nav input[type="checkbox"] {
    display: none;
}

#login-nav input[type="checkbox"] label:before {
    padding: 0;
    position: absolute;
}

#login-nav input[type=checkbox]+label:before {
    background-color: #fff;
    border: 1px solid #444;
    content: "";
    font-family: "Arial";
    font-style: normal;
    height: 16px;
    left: 0;
    line-height: 16px;
    margin-right: 0;
    padding-left: 2px;
    position: absolute;
    top: 3px;
    width: 16px;
    font-size: 12px;
}



#login-nav input[type=checkbox]:checked~label::after {
    background-color: rgb(107, 194, 0);
    color: rgb(255, 255, 255);
    content: "✔";
    border-width: 1px;
    border-style: solid;
    border-color: rgb(107, 194, 0);
    border-image: initial;
    position: absolute
}
<form class="form" id="login-nav">
<div class="checkbox">
    <input type="checkbox">
    <label>Remember me</label>
     <a href="en/forgot-password.html" class="omb_forgotPwd pull-right"> Forgot password? </a>
 </div>
 </form>

Ответы [ 2 ]

0 голосов
/ 05 марта 2020

Вместо использования display: none для ввода введите opacity: 0, чтобы скрыть флажок. Таким образом, флажок остается активным. Затем установите размеры вашего input[type="checkbox"] в соответствии со стилем ввода (ширина и высота 16px) и убедитесь, что фактический флажок отображается поверх стилизованного (используя position: relative и z-index : 1), чтобы он все еще мог получать события клика.

#login-nav .checkbox {
  position: relative;
}

#login-nav input[type="checkbox"] {
    position: relative;
    opacity: 0;
    z-index: 1;
    width: 16px;
    height: 16px;
    margin-top: 3px;
}

#login-nav input[type="checkbox"] label:before {
    padding: 0;
    position: absolute;
}

#login-nav input[type=checkbox]+label:before {
    background-color: #fff;
    border: 1px solid #444;
    content: "";
    font-family: "Arial";
    font-style: normal;
    height: 16px;
    left: 0;
    line-height: 16px;
    margin-right: 0;
    padding-left: 2px;
    position: absolute;
    top: 3px;
    width: 16px;
    font-size: 12px;
}



#login-nav input[type=checkbox]:checked~label::before {
    background-color: rgb(107, 194, 0);
    color: rgb(255, 255, 255);
    content: "✔";
    border-width: 1px;
    border-style: solid;
    border-color: rgb(107, 194, 0);
    border-image: initial;
}
<form class="form" id="login-nav">
<div class="checkbox">
    <input type="checkbox">
    <label>Remember me</label>
     <a href="en/forgot-password.html" class="omb_forgotPwd pull-right"> Forgot password? </a>
 </div>
 </form>
0 голосов
/ 05 марта 2020

Вам необходимо использовать атрибут for на label и использовать его как id на checkbox

#login-nav input[type="checkbox"] {
  display: none;
}

#login-nav input[type="checkbox"] label:before {
  padding: 0;
  position: absolute;
}

#login-nav input[type=checkbox]+label {
  margin-left: 20px;
}

#login-nav input[type=checkbox]+label:before {
  background-color: #fff;
  border: 1px solid #444;
  content: "";
  font-family: "Arial";
  font-style: normal;
  height: 16px;
  left: 0;
  line-height: 16px;
  margin-right: 0;
  position: absolute;
  top: 5px;
  left: 5px;
  width: 16px;
  font-size: 12px;
}

#login-nav input[type=checkbox]:checked~label::after {
  background-color: rgb(107, 194, 0);
  color: rgb(255, 255, 255);
  content: "✔";
  border-width: 1px;
  border-style: solid;
  border-color: rgb(107, 194, 0);
  border-image: initial;
  position: absolute;
  left: 5px;
  top: 5px;
  width: 16px;
  height: 16px;
  font-size: 12px;
  text-align: center;
}
<form class="form" id="login-nav">
  <div class="checkbox">
    <input type="checkbox" id="custom">
    <label for="custom">Remember me</label>
    <a href="en/forgot-password.html" class="omb_forgotPwd pull-right"> Forgot password? </a>
  </div>
</form>
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...