У меня есть список основных c, со структурой HTML, подобной этой:
<ul class="list">
{...}
<li class="item">Ellipse</li>
{...}
Затем я использую некоторые JS, чтобы добавить button
s для удаления элементов, поэтому конечная структура выглядит следующим образом:
<ul class="list">
{...}
<li class="item">Ellipse <button>Delete item</button></li>
{...}
У меня также есть функция, позволяющая пролистывать элементы списка по клику путем переключения класса CSS:
let ul = document.querySelector('.list');
{...}
function markAsDone (event) {
let target = event.target;
target.classList.toggle('done');
}
{...}
ul.addEventListener('click', markAsDone);
. Это работает, как и ожидалось. (например, элемент списка вычеркнут). Однако, если я изменю свойство отображения элементов списка на flex в CSS:
.item {
display: flex;
justify-content: space-between;
max-width: 300px ;
}
И затем щелкну по элементу, текст кнопки также будет зачеркнут, в отличие от ранее! С тех пор как я начал писать это, я больше не знаю, какое поведение кажется мне более «неправильным», смеется.
Полный код приведен на Codepen здесь . Попробуйте щелкнуть элементы в списке, а затем раскомментируйте стиль CSS для .item
, чтобы понять, что я имею в виду.
Мое необразованное предположение состоит в том, что ответом на это будет то, как гибкие контейнеры обрабатывают предметы в них. Однако мое понимание этого очень ограничено, поэтому я пришел к вам за ответом.