Twitter Bootstrap 2: Как получить отзывчивый дизайн, чтобы разместить боковую панель внизу, а не сверху?

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

Я новичок в Twitter Bootstrap и попытался выяснить, какая часть CSS в bootstrap-response.css, но я ничего не видел в разделе для @media (max-width: 480px).

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

Любили бы некоторые указатели...

Ответ 1

Вы можете добиться этого эффекта, перевернув контейнеры для боковой панели и области содержимого и просто плавая так, как хотите. Это можно сделать чистым, не слишком много загружая с помощью таблицы стилей загрузки, назначая свои собственные идентификаторы боковой панели и области содержимого и делая что-то вроде этого:

CSS

.sidebar-nav {
    padding: 9px 0;
    width:100%;
}

#sidebar {
    float:left;
    margin-left:0;
}

#content {
    float:right !important;
    margin-left:auto;
}

@media (max-width: 767px) {
    #sidebar {
        display: inline-block;
        margin-top: 20px;
        width: 100%;
    }

    #content {
        float:none !important;
        margin-left:0;
    }
}

Затем все, что вам нужно сделать, это перевернуть контейнерные divs следующим образом:

<div id="content" class="span9"> ... </div> /* item you want up top first */
<div id="sidebar" class="span3"> ... </div> /* last item to be rendered below */

Демо: http://jsfiddle.net/andresilich/YEUwN/1/show/ Редактировать здесь: http://jsfiddle.net/andresilich/YEUwN/1/

Ответ 2

Это может быть легко.

// Pull right sidebar to top
<div class="row">
  <div class="span3 pull-right">Right sidebar</div>
  <div class="span9">Content section</div>
</div>

// Or pull left sidebar to bottom side
<div class="row">
  <div class="span9 pull-right">Content section</div>
  <div class="span3">Left Sidebar</div>
</div>

Ответ 3

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

Чтобы сделать этот поток более полезным, я хотел бы знать, что подразумевается под "Тогда все, что вам нужно сделать, это перевернуть контейнерные divs следующим образом:" Как разворачиваются контейнерные divs? Демо-версия/редактирование кода до сих пор не понятны кому-то вроде меня, который не знаком с этой техникой. Я не могу понять, что он делает и как это работает. Это почти похоже на то, что на нем действует javascript. В идеале, был бы пример с голыми костями с двумя div и минимальным css, указывающим на то, что css-линия имеет "флип".

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

Ответ 4

Я создал сетку "расширение", чтобы обеспечить упорядочение источника для жидкостных сеток - его можно оптимизировать, но он выполняет эту работу. Просто используйте col-pull-# и col-push-# (где # - количество столбцов, которые вы хотите вытащить/нажимать). Также для переопределения поля для первого элемента добавьте класс first к элементу, который вы хотите отобразить первым в строке. Смотрите демо и получите HTML/CSS/LESS здесь:

http://jsfiddle.net/NGuL2/3/embedded/result/

Ответ 5

Нет оптимизированного решения, но вот как я это сделал:

<script type="text/javascript">
$(window).resize(function() {
    if ( $(window).width() < 768 ) {
        $(".sidebar").insertAfter(".main");
    }
    else{
        $(".main").insertAfter(".sidebar");
    }
});

$(document).ready(function(){
    if ( $(window).width() < 768 ) {
        $(".sidebar").insertAfter(".main");
    }
});
</script>