Исправленный столбец Bootstrap 4 сворачивается, если содержит длинный текст, и портит ответное сокрытие - PullRequest
0 голосов
/ 23 октября 2018

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

Так что у меня есть окно чата внутри карты, с одним столбцом, который должен пытаться взять всю ширину картыи справа столбец 2 со списком пользователей, который исчезает на меньших экранах (d-none d-lg-block). Сообщения складываются в блоки для каждого пользователя, как в Discord.Каждый блок сообщений состоит из столбца col-xs-1, который содержит аватар пользователя, а затем столбец полной ширины для реальных сообщений.

Хотя все выглядит нормально, столбец сообщений как-то сворачивается под столбцом аватарана маленьких экранах, когда одно из сообщений длинное.Это также вызывает проблемы со столбцом отзывчивых пользователей, перед достижением точки останова d-none он помещается под другой столбец фиксированной ширины.Когда сообщение очень длинное, оно в любом случае помещается туда на всех экранах.Я пытался разбить слова, переполнения и т. Д. Без удачи.Слово разбито на части, но оно все еще вызывает проблемы.

Вы можете просмотреть код в bootply: https://www.bootply.com/KmwTGY86yu Или как фрагмент

<script src="https://code.jquery.com/jquery-3.3.1.slim.min.js"></script>
<script src="https://cdnjs.cloudflare.com/ajax/libs/popper.js/1.14.3/umd/popper.min.js"></script>
<link rel="stylesheet" href="https://stackpath.bootstrapcdn.com/bootstrap/4.1.3/css/bootstrap.min.css">
<script src="https://stackpath.bootstrapcdn.com/bootstrap/4.1.3/js/bootstrap.min.js"></script>

<div class="container">
  <div class="row">
    <div class="col-12">
      <div class="card">
        <div class="card-header">
          Card header
        </div>
        <div class="card-body">
          <div class="row">
            <div class="col">
              <!-- full-width column for message box -->
              <div class="container-fluid" style="overflow-y: auto; overflow-x: hidden">
                <!-- start of messages box -->
                <div class="row">
                  <!-- message block -->
                  <div class="col-xs-1">
                    <div style="height: 40px; width: 40px; border-radius: 100%; background-color: black"></div>
                  </div>
                  <div class="col">
                    <h5 class="text-danger float-left">Username</h5>
                    <small class="text-muted float-right">timestamp</small>
                    <div class="clearfix"></div>

                    <div>
                      This is a single message
                    </div>
                    <div>
                      This is another single message
                    </div>

                  </div>
                  <hr class="w-100">
                </div>
                <div class="row">
                  <div class="col-xs-1">
                    <div style="height: 40px; width: 40px; border-radius: 100%; background-color: black"></div>
                  </div>
                  <div class="col">
                    <h5 class="text-danger float-left">Username 2</h5>
                    <small class="text-muted float-right">timestamp</small>
                    <div class="clearfix"></div>

                    <div>
                      This is a third message
                    </div>
                    <div>
                      ASNDJKASJDAJDKLAJLADSAJLKASDJLAKSJDKLSAJDLKAJKALDJKLJDLADJLASJDLKSAJDASJDLASDASDASDASDASA
                    </div>

                  </div>
                  <hr class="w-100">
                </div>
                <div class="row">
                  <!-- message block -->
                  <div class="col-xs-1">
                    <div style="height: 40px; width: 40px; border-radius: 100%; background-color: black"></div>
                  </div>
                  <div class="col">
                    <h5 class="text-danger float-left">Username</h5>
                    <small class="text-muted float-right">timestamp</small>
                    <div class="clearfix"></div>

                    <div>
                      This is a single message
                    </div>
                    <div>
                      This is another single message
                    </div>

                  </div>
                  <hr class="w-100">
                </div>
              </div>
              <!-- end messages box -->
            </div>

            <div class="col-2 d-none d-lg-block">
              Users bar, gets pushed under first column before disappearing when one of messages is too long
            </div>

          </div>
        </div>
      </div>
    </div>
  </div>
</div>

Просто откройте его в другом окне и измените его размер до меньшего.

1 Ответ

0 голосов
/ 23 октября 2018

Как я вижу, вы используете Bootstrap 4. Вместо col-xs-1 используйте col-1, вместо col, используйте col-11 (или col-10 offset-1, чтобы сделать расстояние между аватаром и сообщением)

<script src="https://code.jquery.com/jquery-3.3.1.slim.min.js"></script>
<script src="https://cdnjs.cloudflare.com/ajax/libs/popper.js/1.14.3/umd/popper.min.js"></script>
<link rel="stylesheet" href="https://stackpath.bootstrapcdn.com/bootstrap/4.1.3/css/bootstrap.min.css">
<script src="https://stackpath.bootstrapcdn.com/bootstrap/4.1.3/js/bootstrap.min.js"></script>

<div class="container">
  <div class="row">
    <div class="col-12">
      <div class="card">
        <div class="card-header">
          Card header
        </div>
        <div class="card-body">
          <div class="row">
            <div class="col">
              <!-- full-width column for message box -->
              <div class="container-fluid" style="overflow-y: auto; overflow-x: hidden">
                <!-- start of messages box -->
                <div class="row">
                  <!-- message block -->
                  <div class="col-1">
                    <div style="height: 40px; width: 40px; border-radius: 100%; background-color: black"></div>
                  </div>
                  <div class="col-10 offset-1">
                    <h5 class="text-danger float-left">Username</h5>
                    <small class="text-muted float-right">timestamp</small>
                    <div class="clearfix"></div>

                    <div>
                      This is a single message
                    </div>
                    <div>
                      This is another single message
                    </div>

                  </div>
                  <hr class="w-100">
                </div>
                <div class="row">
                  <div class="col-1">
                    <div style="height: 40px; width: 40px; border-radius: 100%; background-color: black"></div>
                  </div>
                  <div class="col-10 offset-1">
                    <h5 class="text-danger float-left">Username 2</h5>
                    <small class="text-muted float-right">timestamp</small>
                    <div class="clearfix"></div>

                    <div>
                      This is a third message
                    </div>
                    <div>
                      ASNDJKASJDAJDKLAJLADSAJLKASDJLAKSJDKLSAJDLKAJKALDJKLJDLADJLASJDLKSAJDASJDLASDASDASDASDASA
                    </div>

                  </div>
                  <hr class="w-100">
                </div>
                <div class="row">
                  <!-- message block -->
                  <div class="col-1">
                    <div style="height: 40px; width: 40px; border-radius: 100%; background-color: black"></div>
                  </div>
                  <div class="col-10 offset-1">
                    <h5 class="text-danger float-left">Username</h5>
                    <small class="text-muted float-right">timestamp</small>
                    <div class="clearfix"></div>

                    <div>
                      This is a single message
                    </div>
                    <div>
                      This is another single message
                    </div>

                  </div>
                  <hr class="w-100">
                </div>
              </div>
              <!-- end messages box -->
            </div>

            <div class="col-2 d-none d-lg-block">
              Users bar, gets pushed under first column before disappearing when one of messages is too long
            </div>

          </div>
        </div>
      </div>
    </div>
  </div>
</div>
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...