#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. Какой отличный подход, спасибо!