Переполнение таблицы в контейнере div

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

Стол переполнен

export const PlantServiceOrders = () => {
  return (
    <div className='w-full bg-white mb-6 shadow-lg rounded'>
      <div className='w-full p-4'>
        <h3>Ordenes de Servicio por completar</h3>
      </div>
      <div className='max-w-full overflow-x-scroll'>
        <table className='w-full border-collapse'>
          <thead>
            <tr className='[&>*]:px-6 [&>*]:bg-gray-100 [&>*]:text-gray-500 [&>*]:border [&>*]:border-solid [&>*]:border-gray-200 [&>*]:py-3 [&>*]:text-xs [&>*]:uppercase [&>*]:border-l-0 [&>*]:border-r-0 [&>*]:whitespace-no-wrap [&>*]:font-semibold [&>*]:text-center'>
              <th>folio</th>
              <th>planta</th>
              <th>cliente</th>
              <th>número parte</th>
              <th>nombre parte</th>
              <th>defecto</th>
              <th>contacto</th>
              <th>email</th>
              <th>teléfono</th>
              <th>fecha inicio</th>
              <th></th>
            </tr>
          </thead>
          <tbody>
            <tr className='hover:bg-gray-200 [&>*]:border-t-0 [&>*]:px-6 [&>*]:align-middle [&>*]:border-l-0 [&>*]:border-r-0 [&>*]:text-xs [&>*]:whitespace-no-wrap [&>*]:p-4'>
              <td>XXXXXXX</td>
              <td>XXXXX</td>
              <td>XXXXX XXXXXX XXXX XX XXXX </td>
              <td>XXXXXXXXXX</td>
              <td>XXXXX XXXX XXXXXXX </td>
              <td>XXXXXX XX XXXXX </td>
              <td>XXXXXX XXXXX </td>
              <td>XXXXXXXXXXXXXXXXXXXXXX </td>
              <td>XXXXXXXXXX</td>
              <td>XXXX-XX-X </td>
              <td>
                <button className='text-white text-md bg-green-600 hover:bg-green-700 rounded-lg py-2 px-4 cursor-pointer font-semibold'>
                  Completar
                </button>
              </td>
            </tr>
          </tbody>
        </table>
      </div>
    </div>
  )
}
Улучшение производительности загрузки с помощью 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
0
50
1
Перейти к ответу Данный вопрос помечен как решенный

Ответы 1

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

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

Проблема в том, что по умолчанию браузеры пытаются вычислить ширину столбцов таблицы автоматически, основываясь на содержимом. Но если вы хотите, вы можете определить ширину столбцов в коде. Подробнее об этом читайте на сайте CSSWG.

С помощью TailwindCSS вы можете добавить класс table-fixed в таблицу, согласно документам Tailwind Table Layout . Но не забудьте добавить ширину столбцам, например. с w-классами. Это может выглядеть так:

export const PlantServiceOrders = () => {
  return (
    <div className = "w-full bg-white mb-6 shadow-lg rounded">
      <div className = "w-full p-4">
        <h3>Ordenes de Servicio por completar</h3>
      </div>
      <div className = "max-w-full overflow-x-scroll">
        <table className = "w-full table-fixed border-collapse">
          <thead className = "text-left">
            <tr className = "[&>*]:px-6 [&>*]:bg-gray-100 [&>*]:text-gray-500 [&>*]:border [&>*]:border-solid [&>*]:border-gray-200 [&>*]:py-3 [&>*]:text-xs [&>*]:uppercase [&>*]:border-l-0 [&>*]:border-r-0 [&>*]:whitespace-no-wrap [&>*]:font-semibold [&>*]:text-center">
              <th className = "w-24">folio</th>
              <th className = "w-16">planta</th>
              <th className = "w-32">cliente</th>
              <th className = "w-32">número parte</th>
              <th className = "w-32">nombre parte</th>
              <th className = "w-32">defecto</th>
              <th className = "w-32">contacto</th>
              <th className = "w-32">email</th>
              <th className = "w-32">teléfono</th>
              <th className = "w-24">fecha inicio</th>
              <th className = "w-32"></th>
            </tr>
          </thead>
          <tbody className = "align-top break-words">
            <tr className = "hover:bg-gray-200 [&>*]:border-t-0 [&>*]:px-6 [&>*]:align-middle [&>*]:border-l-0 [&>*]:border-r-0 [&>*]:text-xs [&>*]:whitespace-no-wrap [&>*]:p-4">
              <td>XXXXXXX</td>
              <td>XXXXX</td>
              <td>XXXXX XXXXXX XXXX XX XXXX </td>
              <td>XXXXXXXXXX</td>
              <td>XXXXX XXXX XXXXXXX </td>
              <td>XXXXXX XX XXXXX </td>
              <td>XXXXXX XXXXX </td>
              <td>XXXXXXXXXXXXXXXXXXXXXX </td>
              <td>XXXXXXXXXX</td>
              <td>XXXX-XX-X </td>
              <td>
                <button className = "text-white text-md bg-green-600 hover:bg-green-700 rounded-lg py-2 px-4 cursor-pointer font-semibold">
                  Completar
                </button>
              </td>
            </tr>
          </tbody>
        </table>
      </div>
    </div>
  );
};

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