@ Chetan, это не обязательно должно быть так, вы всегда можете чередовать элемент контейнера между слоями и использовать его в качестве контрольной точки. Я бы сопоставил кнопку удаления первого элемента списка с
оздании веб-приложения, насыщенного Javascript, каков наилучший способ присвоения имен классам CSS для поддержания чистоты кода Javascript и таблиц стилей CSS и гибкости структуры пользовательского интерфейса?
Опция 1:Назовите каждый элемент уникально.
Например,
// HTML
<div id="list">
<button class="list-delete" />
<div class="list-items">
<div class="item">
<button class="item-delete" />
<h1 class="item-name">Item 1</h1>
</div>
</div>
</div>
// CSS
.list-delete {
color: black;
}
.item-delete {
color: blue;
}
// Javascript
$(".list-delete").show();
$(".item-delete").hide();
Плюсы:
Выбор элемента для стиля или манипуляции JS простМинусы:
Имена элементов начинают становиться действительно длинными и трудными для отслеживанияИзменение структуры HTML требует много переименованияВариант 2:Назовите каждый элемент семантически, и выберите элементы иерархически.
Например,
// HTML
<div id="list">
<button class="delete" />
<div class="items">
<div class="item">
<button class="delete" />
<h1 class="name">Item 1</h1>
</div>
</div>
</div>
// CSS
#list > .delete {
color: black;
}
#list > .items > .item > .delete {
color: blue;
}
// Javascript
$("#list > .delete").show();
$("#list > .items > .item > .delete").hide();
Плюсы:
Наименование кажется более естественным, а имена короткими и яснымиМинусы:
Выбор элемента для стайлинга или манипуляции громоздокИзменение структуры HTML требует изменения множества селекторов, поскольку имена связаны с иерархической структуройВариант 3 ... n: Какой-то гибридный подход? Совершенно другой подход вообще?
Помните о проблеме конфликта имен при добавлении большего количества элементов в будущем, особенно если у вас есть вложенные элементы. Кроме того, идеальное решение позволит легко изменить структуру HTML существующих элементов без чрезмерного разрушения в других местах.