Подтвердить что ты не робот

Создание горизонтального прокручивания списка элементов с помощью столбцов Bootstrap

Я хотел бы отобразить несколько записей в div с горизонтальной прокруткой. Я использую Twitter Bootstrap и устанавливаю строку div с каждой записью данных, представленной в виде столбца.

Если мне нужно сбросить сетку Bootstrap для этой части, тогда это нормально, я не использую ее так, как она была разработана. Я подозреваю... Если бы я не использовал Twitter Bootstrap для этой части, тогда мой вопрос: почти идентичный Предотвращать всплывающие divs от упаковки до новой строки. Проблема с принятым ответом на этот вопрос заключается в том, что предполагается, что вы можете рассчитать общую ширину вашего контейнера. В моем случае количество элементов div является динамическим.

Я ищу чистое решение CSS/HTML. Если требуется Javascript, я использую AngularJS без jQuery.

Мой пример: http://jsfiddle.net/V5zWT/2/

CSS

.DocumentList
{
    overflow-x:scroll;
    overflow-y:hidden;
    height:200px;
    width:100%;
    padding: 0 15px;
}

.DocumentItem
{
    border:1px solid black;
    padding:0;
    height:200px;
}

HTML

<div class="DocumentList"> 
    <div class="row">
        <div class="col-xs-3 col-sm-3 col-md-3 col-lg-3 DocumentItem">
            Record 12345
            <br/>
            More data
            <br />
        </div>
        <div class="col-xs-3 col-sm-3 col-md-3 col-lg-3 DocumentItem">
            Record 12345
            <br/>
            More data
            <br />
        </div>
        <div class="col-xs-3 col-sm-3 col-md-3 col-lg-3 DocumentItem">
            Record 12345
            <br/>
            More data
            <br />
        </div>
        <div class="col-xs-3 col-sm-3 col-md-3 col-lg-3 DocumentItem">
            Record 12345
            <br/>
            More data
            <br />
        </div>
        <div class="col-xs-3 col-sm-3 col-md-3 col-lg-3 DocumentItem">
            Record 12345
            <br/>
            More data
            <br />
        </div>
        <div class="col-xs-3 col-sm-3 col-md-3 col-lg-3 DocumentItem">
            Record 12345
            <br/>
            More data
            <br />
        </div>
        <div class="col-xs-3 col-sm-3 col-md-3 col-lg-3 DocumentItem">
            Record 12345
            <br/>
            More data
            <br />
        </div>
    </div>
</div>

Как видно из скрипки, отображаются только первые 4 записи. Из-за CSS float (я предполагаю) полоса прокрутки не активируется, а другие записи не отображаются. Если я не скрываю переполнение, тогда я могу прокрутить вниз и увидеть скрытые записи, но это не то, что я собираюсь сделать.

4b9b3361

Ответ 1

Мне удалось заставить его работать, используя почти щебетать Bootstrap:

Fiddle: http://jsfiddle.net/V5zWT/12/

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

.list-inline {
  white-space:nowrap;
}

<div class="DocumentList">
    <ul class="list-inline">
        <li class="DocumentItem">
            <span>Test Data1</span>
        </li>
        <li class="DocumentItem">
            <span>Test Data1</span>
        </li>
        <li class="DocumentItem">
            <span>Test Data1</span>
        </li>
        <li class="DocumentItem">
            <span>Test Data1</span>
        </li>
        <li class="DocumentItem">
            <span>Test Data1</span>
        </li>
        <li class="DocumentItem">
            <span>Test Data1</span>
        </li>
        <li class="DocumentItem">
            <span>Test Data1</span>
        </li>
        <li class="DocumentItem">
            <span>Test Data1</span>
        </li>
        <li class="DocumentItem">
            <span>Test Data1</span>
        </li>
    </ul>
</div>

Ответ 2

Чтобы разрешить горизонтальную прокрутку, проверьте эту ссылку github

Загрузите и включите bootstrap-horizon.css после bootstrap.css. как

<link rel="stylesheet" href="css/bootstrap.min.css"/>
<link rel="stylesheet" href="css/bootstrap-horizon.css">

Пример кода

div class="row row-horizon">
  <div class="col-md-6">
    <h1>Test</h1>
  </div>
  <div class="col-md-6">
    <h1>Test</h1>
  </div>
  <div class="col-md-6">
    <h1>Test</h1>
  </div>
  <div class="col-md-6">
    <h1>Test</h1>
  </div>
</div>`

он работает для меня.

Ответ 3

Возможно, это поможет вам:

FIDDLE

Если ширина .DocumentItem исправлена, вы можете подсчитать ширину элемента прокрутки и установить его динамически.

<script type="text/javascript">
    var totalWidth = $('.DocumentItem').length * $('.DocumentItem').width();
    $('.row').css('width', totalWidth + 'px');
</script>