Как убрать галочку в пользовательском чекбоксе?

#html #css #checkbox

#HTML #css #чекбокс

Вопрос:

Как я могу убрать галочку в чекбоксе и заменить ее на букву?

 .checkmark {
  position: absolute;
  top: 0;
  left: 0;
  height: 25px;
  width: 25px;
  background-color: #eee;
}
  

w3schools.com или JSFiddle

Ответ №1:

В текущем коде это создает галочку:

 .container .checkmark:after {
  left: 9px;
  top: 5px;
  width: 5px;
  height: 10px;
  border: solid white;
  border-width: 0 3px 3px 0;
  -webkit-transform: rotate(45deg);
  -ms-transform: rotate(45deg);
  transform: rotate(45deg);
}
  

Обратите внимание, что он создает ее, используя границу повернутого квадрата (таким образом, метка на самом деле является углом квадрата). Вы можете сделать это как угодно, удалив свойства границы и добавив content: "Y" , например (для Y вместо флажка). Но вам также придется затем поиграть с остальным стилем, чтобы он выглядел хорошо.

Ответ №2:

Метод, который я использовал, заключается в том, чтобы создать <span> элемент, который содержит галочку рядом с <input> , а затем использовать CSS, чтобы скрыть стиль по умолчанию и вместо этого поместить галочку внутрь. Теперь я пытался заменить галочку по умолчанию на симпатичную галочку, вы пытаетесь заменить ее буквой.

Хитрость в том, что я действительно использую прямоугольник и изменяю границы, чтобы превратить его в галочку. Я думаю, вы также могли бы просто использовать символ галочки в пределах диапазона, поэтому в вашей ситуации, если вы хотите иметь поле с «A» внутри при выборе. Измените мой код ::after (избавьтесь от границы) и поместите content:"A" вместо этого, а затем просто слегка измените позиционирование.

HTML

 <label class="checkbox__container">
    <input type="checkbox" class="person__checkbox" />
    <span class="checkmark"></span>
</label>
  

CSS

 /* Customize the label (the container) */
.checkbox__container {
    display: block;
    position: relative;
    padding-left: 35px;
    cursor: pointer;
    font-size: 22px;
    -webkit-user-select: none;
    -moz-user-select: none;
    -ms-user-select: none;
    user-select: none;
    height: 25px;
  }

  /* Hide the browser's default checkbox */
  .checkbox__container input {
    position: absolute;
    opacity: 0;
    cursor: pointer;
    height: 0;
    width: 0;
  }

  /* Create a custom checkbox */
  .checkbox__container .checkmark {
    position: absolute;
    top: 0;
    left: 0;
    height: 25px;
    width: 25px;
    background-color: #eee;
  }

  /* Create the checkmark/indicator (hidden when not checked) */
  .checkbox__container:after {
    content: "";
    position: absolute;
    display: none;
  }

  /* Show the checkmark when checked */
  .checkbox__container input:checked ~ .checkmark:after {
    display: block;
  }

  /* Style the checkmark/indicator */
  .checkbox__container .checkmark:after {
    content: "";
    position: absolute;
    left: 8px;
    top: 4px;
    width: 5px;
    height: 10px;
    border: solid white;
    border-width: 0 3px 3px 0;
    -webkit-transform: rotate(45deg);
    -ms-transform: rotate(45deg);
    transform: rotate(45deg);
  }
  

Ответ №3:

Если то, что вы хотите сделать, это убрать галочку программно после того, как она была нажата, тогда вы можете просто получить целевой элемент, используя jquery / javascript, а затем применить событие click.

 $('#check_box input:checked').each(function() {
    $(this).click();
});

or 

let element = document.getElementById("checkboxElement");
    element.click();