Поместите кнопку справа от каждой строки с помощью overflow-x

Я хочу добавить кнопку рядом с каждой строкой моей таблицы. Поворот сюжета, таблица находится внутри div с фиксированной шириной и overflow-x для отзывчивости. Я хочу, чтобы кнопка отображалась рядом с каждой строкой вне контейнера div.

С моим текущим кодом кнопка отображается рядом со строкой, но остается в фиксированном div.

<div style = "width:100px; overflow-x: scroll;">
  <table>
    <thead>
      <tr>
        <th>ID</th><th>ID</th><th>ID</th><th>ID</th><th>ID</th>
        <th></th>
      </tr>
    </thead>
    <tbody>
      <tr>
        <td>0</td><td>1</td><td>2</td><td>3</td><td>4</td>
        <td>
          <div style = "position:relative; width:0px;">
            <button style = "position:absolute;left:10px;">Edit</button>
          </div>
        </td>
      </tr>
    </tbody>
  </table>
</div>

что касается вашей проблемы, вы не можете сделать это, на мой взгляд, без вложения этого div и кнопки внутри родительского контейнера. Потому что, если overflow-x настроен на прокрутку, ничего не выйдет за пределы прокрутки справа.

Fabien Auréjac 06.05.2022 16:01

Просто избегайте абсолютной позиции в таблицах и оставьте кнопку в простом теге td. Добавьте белый цвет фона в последние ячейки в таблицах. Будьте проще, когда это возможно.

Moebius 06.05.2022 16:02

Хорошо, я думаю, мне придется создать отдельный контейнер для кнопок. Я хотел избежать этого. чтобы высота всегда совпадала. Или я соглашаюсь с тем, чтобы пользователь всегда прокручивал, чтобы добраться до элементов управления.

Louis Ouellet 06.05.2022 16:25

вам, вероятно, понадобится какой-то плагин - я обычно использую таблицы данных: datatables.net/extensions/fixedcolumns/examples/initialisati‌​on/…

Pete 06.05.2022 16:35

@pete Раньше я использовал таблицы данных. Не знал, что у них есть выбор. Спасибо. Это привело меня к ответу. Мне нужно добавить style = "position: sticky; right: 0px" в последний столбец. См. jsfiddle.net/ЛуиУэлле/uLm43gjt/2.

Louis Ouellet 06.05.2022 17:36
Улучшение производительности загрузки с помощью Google Tag Manager и атрибута Defer
Улучшение производительности загрузки с помощью Google Tag Manager и атрибута Defer
В настоящее время производительность загрузки веб-сайта имеет решающее значение не только для удобства пользователей, но и для ранжирования в...
Введение в CSS
Введение в CSS
CSS является неотъемлемой частью трех основных составляющих front-end веб-разработки.
Как выровнять Div по центру?
Как выровнять Div по центру?
Чтобы выровнять элемент <div>по горизонтали и вертикали с помощью CSS, можно использовать комбинацию свойств и значений CSS. Вот несколько методов,...
Навигация по приложениям React: Исчерпывающее руководство по React Router
Навигация по приложениям React: Исчерпывающее руководство по React Router
React Router стала незаменимой библиотекой для создания одностраничных приложений с навигацией в React. В этой статье блога мы подробно рассмотрим...
Система управления парковками с использованием HTML, CSS и JavaScript
Система управления парковками с использованием HTML, CSS и JavaScript
Веб-сайт по управлению парковками был создан с использованием HTML, CSS и JavaScript. Это простой сайт, ничего вычурного. Основная цель -...
Toor - Ангулярный шаблон для бронирования путешествий
Toor - Ангулярный шаблон для бронирования путешествий
Toor - Travel Booking Angular Template один из лучших Travel & Tour booking template in the world. 30+ валидированных HTML5 страниц, которые помогут...
0
5
49
1
Перейти к ответу Данный вопрос помечен как решенный

Ответы 1

Ответ принят как подходящий

Решение использует липкое положение в последнем столбце.

position: sticky; right: 0px

Ссылка: Школы W3.

Вот фрагмент:

<div style = "width:100px; overflow-x: scroll;">
  <table>
    <thead>
      <tr>
        <th>ID</th><th>ID</th><th>ID</th><th>ID</th><th>ID</th>
        <th>Action</th>
      </tr>
    </thead>
    <tbody>
      <tr>
        <td>0</td><td>1</td><td>2</td><td>3</td><td>4</td>
        <td style = "position: sticky; right: 0px">
          <button>Edit</button>
        </td>
      </tr>
    </tbody>
  </table>
</div>

Другие вопросы по теме