Проблема с оформлением таблицы

Делаю веб приложение на asp.net core для работы с базой данных и есть у меня страница с широкой таблицы, для которой был сделан скролл. Также в таблице есть столбец "действия" в котором находятся две кнопки(ссылки) для изменения записи и удаления записи из таблицы. Конкретно в коде таблица выглядит так

<div class="big-table">
    <table class="table">
        <thead>
            <tr>
                <th>
                    @Html.DisplayNameFor(model => model.PlannedEvents.FirstOrDefault().Event.Name)
                </th>
                <th>
                    @Html.DisplayNameFor(model => model.PlannedEvents.FirstOrDefault().Event.Unit)
                </th>
                <th>
                    @Html.DisplayNameFor(model => model.PlannedEvents.FirstOrDefault().Enterprise.Name)
                </th>
                <th>
                    @Html.DisplayNameFor(model => model.PlannedEvents.FirstOrDefault().DateOfStart)
                </th>
                <th>
                    @Html.DisplayNameFor(model => model.PlannedEvents.FirstOrDefault().DateOfEnd)
                </th>
                <th>
                    @Html.DisplayNameFor(model => model.PlannedEvents.FirstOrDefault().Scope)
                </th>
                <th>
                    @Html.DisplayNameFor(model => model.PlannedEvents.FirstOrDefault().Expenses)
                </th>
                <th>
                    @Html.DisplayNameFor(model => model.PlannedEvents.FirstOrDefault().EconomicEffect)
                </th>
                <th>
                    @Html.DisplayNameFor(model => model.PlannedEvents.FirstOrDefault().Responsible.Surname)
                </th>
                <th>
                    @Html.DisplayNameFor(model => model.PlannedEvents.FirstOrDefault().Responsible.Name)
                </th>
                <th>
                    @Html.DisplayNameFor(model => model.PlannedEvents.FirstOrDefault().Responsible.MiddleName)
                </th>
                <th>
                    @Html.DisplayNameFor(model => model.PlannedEvents.FirstOrDefault().Responsible.Phone)
                </th>
                <th>
                    Сумма финансиирования
                </th>
                <th>
                    Действия
                </th>
            </tr>
        </thead>
        <tbody>
            @foreach (var item in Model.PlannedEvents)
            {
                <tr>
                    <td>
                        @Html.DisplayFor(modelitem => item.Event.Name)
                    </td>
                    <td>
                        @Html.DisplayFor(model => item.Event.Unit)
                    </td>
                    <td>
                        @Html.DisplayFor(model => item.Enterprise.Name)
                    </td>
                    <td>
                        @Html.DisplayFor(model => item.DateOfStart)
                    </td>
                    <td>
                        @Html.DisplayFor(model => item.DateOfEnd)
                    </td>
                    <td>
                        @Html.DisplayFor(model => item.Scope)
                    </td>
                    <td>
                        @Html.DisplayFor(model => item.Expenses)
                    </td>
                    <td>
                        @Html.DisplayFor(model => item.EconomicEffect)
                    </td>
                    <td>
                        @Html.DisplayFor(model => item.Responsible.Surname)
                    </td>
                    <td>
                        @Html.DisplayFor(model => item.Responsible.Name)
                    </td>
                    <td>
                        @Html.DisplayFor(model => item.Responsible.MiddleName)
                    </td>
                    <td>
                        @Html.DisplayFor(model => item.Responsible.Phone)
                    </td>
                    <td>
                        @foreach (var sumByEvent in ViewBag.SumsByEvent)
                        {
                            @if (sumByEvent.EventId == item.Id)
                            {
                                @sumByEvent.TotalMoney
                            }
                        }
                    </td>
                    <td>
                        @Html.ActionLink("Удалить", "Remove", new { id = item.Id }) |
                        @Html.ActionLink("Изменить", "Edit", new { id = item.Id })
                    </td>
                </tr>
            }
        </tbody>
    </table>
</div>

К таблице были применены стили, в частности те, которые позволяют делать горизонтальный скролл таблицы.

.big-table {
    overflow: auto;
    position: relative;
}

    .big-table table {
        display: inline-block;
        vertical-align: top;
        max-width: 100%;
        overflow-x: auto;
        white-space: nowrap;
        -webkit-overflow-scrolling: touch;
    }

Проблема заключается в том, что нужно сделать таблицу таким образом, чтобы отделить столбец с действиями от основной таблицы. То есть при вертикальном скролле он тоже будет прокручиваться и относится к основной таблице. Но горизонтальный скролл нужно сделать для всех столбцов, кроме столбца с действиями, т.к. его нужно просто поставить рядом с таблицей. Может, при помощи css можно сделать что-то подобное?


Ответы (1 шт):

Автор решения: RSK

Я сделал такой вариант, можете сделать что-то похожее.

table {
  width: 150%;

}

.table th:nth-child(10) {
  position: sticky;
  right: 0;
  background-color: white;
}
.table td:nth-child(10) {
  position: sticky;
  right: 0;
  background-color: white;
}

th, td {
  padding: 8px;
  border: 1px solid black;
}

.container {
  width: 100%;
  overflow-x: scroll;
}
<!DOCTYPE html>
<html>
<head>
</head>
<body>
<div class="container">
  <table class="table">
    <thead>
      <tr>
        <th>Колонка 1</th>
        <th>Колонка 2</th>
        <th>Колонка 3</th>
        <th>Колонка 4</th>
        <th>Колонка 5</th>
        <th>Колонка 6</th>
        <th>Колонка 7</th>
        <th>Колонка 8</th>
        <th>Колонка 9</th>
        <th>Действие</th>
      </tr>
    </thead>
    <tbody>
      <tr>
        <td>Ячейка 1</td>
        <td>Ячейка 2</td>
        <td>Ячейка 3</td>
        <td>Ячейка 4</td>
        <td>Ячейка 5</td>
        <td>Ячейка 6</td>
        <td>Ячейка 7</td>
        <td>Ячейка 8</td>
        <td>Ячейка 9</td>
        <td><a href="#">Изменить запись</a></td>
      </tr>
      <tr>
        <td>Ячейка 1</td>
        <td>Ячейка 2</td>
        <td>Ячейка 3</td>
        <td>Ячейка 4</td>
        <td>Ячейка 5</td>
        <td>Ячейка 6</td>
        <td>Ячейка 7</td>
        <td>Ячейка 8</td>
        <td>Ячейка 9</td>
        <td><a href="#">Изменить запись</a></td>
      </tr>
    </tbody>
  </table>
</div>

</body>
</html>

Я вставил в css код стиль для последней колонки и последних строк таблицы position: sticky; right: 0; background-color: white;

→ Ссылка