Содержит более крупный текст в строке таблицы

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

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

Есть ли способ содержать такие длинные строки? Я попробовал подход, описанный в https://stackoverflow.com/a/18498071, но это не дало никакого эффекта.

Вот мой код. Я использую шаблоны jinja для заполнения второго столбца некоторыми фиктивными данными:

<div class = "container">
            <div class = "col">
                <h6 class = "text-center">HEADING</h6>
                <div class = "form-row">

                    <div class = "col">
                        <ul class = "list-group list-group-horizontal">
                            <li class = "list-group-item flex-fill">TEXT</li>
                            <li class = "list-group-item flex-fill">TEXT</li>
                            <li class = "list-group-item flex-fill">TEXT</li>
                            <li class = "list-group-item flex-fill">TEXT</li>
                        </ul>
                    </div>

                </div>
                <br>
                    <div class = "row">
                        <div class = "col">
                            <table class = "table table-stripped table-sm">
                                <thead>
                                    <tr>
                                        <th scope = "col">Colums</th>
                                        <th scope = "col">Column2</th>
                                    </tr>
                                </thead>
                                <tbody>
                                    <tr>
                                        <td>http://amazon.com</td>
                                        <td>75</td>
                                    </tr>
                                    <tr>
                                        <td>www.website.com/somedomain</td>
                                        <td>90</td>
                                    </tr>
                                    <tr>
                                        <td>www.anotherwebsite.comttttttttttttttttttttt0000000000000000000000000000000000000000000000000000000000tttttttttttttttttttttttttttttttttttttttttttttttttttttttttttt</td>
                                        <td>98</td>
                                    </tr>
                                </tbody>
                            </table>
                        </div>
                            <div class = "col">

                            <table class = "table table-stripped table-sm">
                                <thead>
                                <tr>
                                    <th scope = "col">Some URLs</th>
                                </tr>
                                </thead>
                                {% for data in dummy_data %}
                                <tbody>
                                <tr>
                                    <td>{{data}}</td>
                                </tr>
                                </tbody>
                                {% endfor %}
                            </table>

                        </div>

                    </div>

            </div>
    </div>

Не используйте таблицу для стилизации. Используйте таблицы только для отображения данных. Таким образом, ваша проблема не в том, что у вас больше текста, а в том, что вы использовали неправильные инструменты. Для табличного макета без ограничений таблицы используйте CSS-Grid.

tacoshy 22.12.2020 15:09
Улучшение производительности загрузки с помощью 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 страниц, которые помогут...
1
1
264
1
Перейти к ответу Данный вопрос помечен как решенный

Ответы 1

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

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

<!-- you can use max-width and ellipsis to contain your long data elements-->
<style>
  .col1-width {
    max-width: 400px;
  }

  .col2-width {
    width: 50px;
    text-align: center;
  }

  .ellipsis {
    white-space: nowrap;
    overflow: hidden;
    text-overflow: ellipsis;
  }
</style>
<div class = "container">
  <div class = "col">
    <h6 class = "text-center">HEADING</h6>
    <div class = "form-row">

      <div class = "col">
        <ul class = "list-group list-group-horizontal">
          <li class = "list-group-item flex-fill">TEXT</li>
          <li class = "list-group-item flex-fill">TEXT</li>
          <li class = "list-group-item flex-fill">TEXT</li>
          <li class = "list-group-item flex-fill">TEXT</li>
        </ul>
      </div>

    </div>
    <br>
    <div class = "row">
      <div class = "col">
        <table class = "table table-stripped table-sm">
          <thead>
            <tr>
              <th scope = "col">Colums</th>
              <th scope = "col">Column2</th>
            </tr>
          </thead>
          <tbody style = "width:500px;">
            <tr>
              <td class = "
            ellipsis
            col1-width">http://amazon.com</td>
              <td class = "col2-width">75</td>
            </tr>
            <tr>
              <td class = "ellipsis col1-width">www.website.com/somedomain</td>
              <td class = "col2-width">90</td>
            </tr>
            <tr>
              <td
                class = "ellipsis col1-width"
                title = "www.anotherwebsite.comttttttttttttttttttttt0000000000000000000000000000000000000000000000000000000000tttttttttttttttttttttttttttttttttttttttttttttttttttttttttttt"
              >
                <!-- ellipsis each first td to truncate the data -->
                www.anotherwebsite.comttttttttttttttttttttt0000000000000000000000000000000000000000000000000000000000tttttttttttttttttttttttttttttttttttttttttttttttttttttttttttt
              </td>
              <td class = "col2-width">98</td>
            </tr>
          </tbody>
        </table>
      </div>
      <div class = "col">

        <table class = "table table-stripped table-sm">
          <thead>
            <tr>
              <th scope = "col">Some URLs</th>
            </tr>
          </thead>
          {% for data in dummy_data %}
          <tbody>
            <tr>
              <td>{{data}}</td>
            </tr>
          </tbody>
          {% endfor %}
        </table>

      </div>

    </div>

  </div>
</div>

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