#css #sass #css-selectors
#css #sass #css-селекторы
Вопрос:
Я пытаюсь удалить стиль в последнем элементе моей строки таблицы, однако все, что я пробовал, удаляет стили из всех элементов. Я пробовал last-child
и last-of-type
безрезультатно.
Вот как выглядит тело таблицы
<tr v-for="(status, index) in workflow.statuses" :key="index">
<th scope="row" class="status-th"><div class="status-order"></div> {{ index 1 }}</th>
<td>{{ status.status }}</td>
<td class="text-center"><i class="fas fa-check text-primary"></i></td>
</tr>
Я использую вложенный div с классом .status-order
для создания некоторого пользовательского содержимого. Последний div с классом .status-order
Я хотел бы удалить пользовательское содержимое с помощью last-child:after
селектора. Однако, когда я пытаюсь применить селектор, он удаляет его из всех строк таблицы. Вот css (scss)
.status-order {
position: relative;
right: 8px;
amp;:before{
content: " ";
position: absolute;
height: 25px;
width: 25px;
background-color: #0077ff;
z-index: -1;
border-radius: 50%;
padding-right: 5px;
}
amp;:after {
content: " ";
position: absolute;
left: 10px;
z-index: -2;
height: 50px;
border-right: 5px solid black;
}
}
Это то, что css создает в таблице
Я попытался добавить следующее, чтобы удалить последнее дочернее содержимое, но, как я уже сказал, оно удаляет их все
amp;:last-child:after {
border-right: transparent;
}
Комментарии:
1.
amp;:last-of-type:after
тоже не работает?2.
status-order
всегда будет последним дочерним элементом, поскольку он также является первым дочерним элементом. Вы должны настроить таргетинг на его родительский элемент.
Ответ №1:
Возможно, это поможет вам. пожалуйста, проверьте приведенный ниже пример.
.custome-table th,
.custome-table td {
padding: 10px;
}
.status-order {
position: relative;
right: 8px;
}
.status-order:after {
content: " ";
position: absolute;
left: 10px;
z-index: -2;
height: 40px;
border-right: 5px solid black;
top: -10px;
}
.status-order:before {
content: " ";
position: absolute;
height: 25px;
width: 25px;
background-color: #0077ff;
z-index: -1;
border-radius: 50%;
padding-right: 5px;
}
.custome-table tr:last-child .status-order:after {
border-color: transparent;
}
<table class="custome-table" cellpadding="0" cellspacing="0" border="1">
<tr v-for="(status, index) in workflow.statuses" :key="index">
<th scope="row" class="status-th"><div class="status-order"></div> {{ index 1 }}</th>
<td>{{ status.status }}</td>
<td class="text-center"><i class="fas fa-check text-primary"></i></td>
</tr>
<tr v-for="(status, index) in workflow.statuses" :key="index">
<th scope="row" class="status-th"><div class="status-order"></div> {{ index 1 }}</th>
<td>{{ status.status }}</td>
<td class="text-center"><i class="fas fa-check text-primary"></i></td>
</tr>
<tr v-for="(status, index) in workflow.statuses" :key="index">
<th scope="row" class="status-th"><div class="status-order"></div> {{ index 1 }}</th>
<td>{{ status.status }}</td>
<td class="text-center"><i class="fas fa-check text-primary"></i></td>
</tr>
</table>
Комментарии:
1. Я использовал последнюю часть вашего css, чтобы настроить таргетинг на последнего дочернего элемента. ` table tr:last-child .status-order:after { border-color: transparent; }` не стесняйтесь публиковать это в качестве ответа, и я выберу его в качестве ответа. Я также изменяю
.custom-table
только наtable
элемент