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

#html #css #angular

#HTML #css #angular

Вопрос:

в настоящее время я застрял с этой проблемой форматирования в моем приложении angular. Как вы можете видеть на прикрепленных изображениях, существует проблема с областью кликабельности вокруг моих флажков.

введите описание изображения здесь
введите описание изображения здесь

Я в основном хочу настроить область кликов в соответствии с размером флажка.

На 2-м изображении я выделил текущую область цветом фона: аквамариновый, чтобы сделать ее более четкой.

Мой SCSS-код выглядит следующим образом. У меня такое чувство, что это должно быть легкой задачей, но я несколько упускаю что-то в деталях.

 .date-checkbox {
display: inline;
float: right;
margin-right: -24px;
margin-top: -23px;
-webkit-transform: scale(2);
}

.disable-date {
opacity: 0.5;
pointer-events: none;
}

.enum-checkbox {
display: inline;
float: right;
margin-right: -24px;
margin-top: -23px;
-webkit-transform: scale(2);
}

/* The container */
.container {
cursor: pointer;
  }

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

/* Create a custom checkbox */
.checkmark {
position: absolute;
top: 4px;
left: 25px;
height: 15px;
width: 15px;
background-color: blue;
}

/* On mouse-over, add a grey background color */
.container:hover input ~ .checkmark {
background-color: blue;
}

/* When the checkbox is checked, add a blue background */
.container input:checked ~ .checkmark {
 background-color: blue;
}

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

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

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

Мой HTML-код выглядит следующим образом:

 <div class="enum-checkbox">
    <label class="container">
       <input type="checkbox" (click)="IncludeExcludeProp(groupobject[g.PROPS.title], $event)"
        title="Include in search" />
        <span class="checkmark"></span>
    </label>
</div>
  

Комментарии:

1. Пожалуйста, включите свой HTML вместе с каким-нибудь рабочим примером.

2. добавлен HTML-код

Ответ №1:

Поскольку щелчок по ярлыку по существу приводит к щелчку флажка, я бы добавил padding или width к label окружению флажка, чтобы оно простиралось настолько, насколько вам нужно, чтобы ваша область, доступная для кликов, была.

Обратите внимание, что для обеспечения доступности я добавил aria-label к флажку. title Атрибут игнорируется программами чтения с экрана, и label в противном случае он не содержал бы никакой полезной информации о флажке.

введите описание изображения здесь

 .lbl-checkbox {
  display: inline-block;
  padding: 5em;
  background: #eee;
}  
 <label class="lbl-checkbox">
  <input aria-label="an appropriate label" type="checkbox">
</label>  

Комментарии:

1. Спасибо, что подали эту идею! Это помогло обдумать проблему, и мне удалось настроить ее в соответствии с моим конкретным кодом.

2. Какой отличный подход, спасибо!