#html #css
Вопрос:
У меня есть таблица с последним столбцом sticky, в этом столбце есть абсолютное меню, но абсолютное меню в обратном направлении от столбца sticky. Я хочу, чтобы меню переслало колонку вперед. Я попробовал z-индекс, но он не работал. Пожалуйста, помогите мне! (Извините за мой плохой английский)
Мой кодовый код: кодовый код
.sticky {
position: sticky;
right: 0;
background-color: yellow;
}
.menu {
position: absolute;
left: 0;
background-color: red;
z-index: 1;
}
body {
margin: 0;
}
.wrapper {
overflow-x: auto;
position: relative;
white-space: nowrap;
max-width: 600px;
}
th,
td {
min-width: 300px;
text-align: center;
}
th:last-child,
td:last-child {
min-width: 50px !important;
}
.sticky {
position: sticky;
right: 0;
background-color: yellow;
}
.menu {
position: absolute;
left: 0;
background-color: red;
z-index: 1;
}
<body>
<div class="wrapper">
<table>
<thead>
<tr>
<th>Col</th>
<th>Col</th>
<th>Col</th>
<th class="sticky">Action</th>
</tr>
</thead>
<tbody>
<tr>
<td>-----------------------------------</td>
<td>-----------------------------------</td>
<td>-----------------------------------</td>
<td class="sticky">
. . .
<div class="menu">
<div>item</div>
<div>item</div>
<div>item</div>
</div>
</td>
</tr>
<tr>
<td>-----------------------------------</td>
<td>-----------------------------------</td>
<td>-----------------------------------</td>
<td class="sticky">. . .</td>
</tr>
<tr>
<td>-----------------------------------</td>
<td>-----------------------------------</td>
<td>-----------------------------------</td>
<td class="sticky">. . .</td>
</tr>
</tbody>
</table>
</div>
</body>
Ответ №1:
вам нужно добавить z-index
в родительский элемент sticky элемент вашего абсолютного элемента:
body {
margin: 0;
}
.wrapper {
overflow-x: auto;
position: relative;
white-space: nowrap;
max-width: 600px;
}
th,
td {
min-width: 300px;
text-align: center;
}
th:last-child,
td:last-child {
min-width: 50px !important;
}
.sticky {
position: sticky;
right: 0;
background-color: yellow;
}
.menu {
position: absolute;
left: 0;
background-color: red;
}
.z-index {
z-index: 1;
}
<body>
<div class="wrapper">
<table>
<thead>
<tr>
<th>Col</th>
<th>Col</th>
<th>Col</th>
<th class="sticky">Action</th>
</tr>
</thead>
<tbody>
<tr>
<td>-----------------------------------</td>
<td>-----------------------------------</td>
<td>-----------------------------------</td>
<td class="sticky z-index">
. . .
<div class="menu">
<div>item</div>
<div>item</div>
<div>item</div>
</div>
</td>
</tr>
<tr>
<td>-----------------------------------</td>
<td>-----------------------------------</td>
<td>-----------------------------------</td>
<td class="sticky">. . .</td>
</tr>
<tr>
<td>-----------------------------------</td>
<td>-----------------------------------</td>
<td>-----------------------------------</td>
<td class="sticky">. . .</td>
</tr>
</tbody>
</table>
</div>
</body>