Как мне сделать так, чтобы имена отображались левее и уменьшали расстояние между флажком и именем?
Я визуализирую поле формы Django (CheckboxSelectMultiple) внутри пользовательского выпадающего списка. Флажки и метки (имена) визуально сдвинуты вправо. Я хочу, чтобы выпадающий список выглядел как чистый контрольный список, со всеми значками флажков, расположенными в одном столбце, и текстом, начинающимся сразу справа от флажков, без дополнительных отступов.флажок и имена расположены далеко справа
{{ form.non_field_errors }}
{% for field in form %}
<div style="margin-bottom: 1rem;">
{{ field.label_tag }}<br>
{% if field.name == 'team_members' %}
<div class="dropdown">
<button type="button" onclick="toggleDropdown(this)">Select Team Members</button>
<div class="dropdown-content" style="display:none;">
{% for checkbox in field %}
<label style="display: flex; align-items: center; gap: 6px; margin-bottom: 6px;">
{{ checkbox.tag }}
<span style="font-size: 1rem;">{{ checkbox.choice_label }}</span>
</label>
{% endfor %}
</div>
</div>
{% else %}
{{ field }}<br>
{% endif %}
{{ field.errors }}
</div>
{% endfor %}
<style>
.dropdown {
position: relative;
display: inline-block;
}
.dropdown-content {
position: relative;
background: #fff;
border: 1px solid #ccc;
padding: 10px;
z-index: 100;
min-width: 220px;
max-height: 220px;
overflow-y: auto;
box-shadow: 0 2px 8px rgba(0,0,0,0.08);
display: flex;
flex-direction: column;
}
.dropdown-content label {
display: flex;
align-items: center;
margin-bottom: 6px;
cursor: pointer;
justify-content: flex-start;
gap: 2px; /* smaller gap */
}
.dropdown-content input[type="checkbox"] {
margin-right: -5px; /* remove extra margin */
transform: scale(1.1);
}
</style>
Что я пробовал:
Удалены все отступы и поля из .dropdown-content, label и input[тип="флажок"].
Уменьшен разрыв между флажком и текстом.
Попробовал ul, li { padding: 0; margin: 0; list-style: none; } на случай, если поле Django будет отображаться как список (этого не произошло).
Использовалась позиция: абсолютная с значением left: 0 на флажке, чтобы переместить его влево, но вместо этого флажок появился справа от текста надписи.
Попытался установить порядок: -1 во flexbox, чтобы переместить флажок перед текстом, но выравнивание по-прежнему казалось несогласованным.