Левый столбец сверху / снизу на мобильных устройствах с загрузкой 3 и двумя боковыми панелями

#css #twitter-bootstrap-3 #grid-layout

#css #twitter-bootstrap-3 #сетка-макет

Вопрос:

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

«Левый столбец снизу» вытесняется «Правым столбцом». Когда «Правый столбец» выше, «Левый столбец снизу» выталкивается со страницы при использовании col-md-pull-9 . Я понимаю, что использование более 12 столбцов приведет к снижению производительности. Есть ли способ избежать этого?

http://www.bootply.com/t79A9Q20SW

 <div class="row">

    <aside class="col-md-3 col-sm-12 side" role="complementary">
      <div style="height:40px;background-color:red;"><p>(Red) Left col top (top mobile)</p></div>
    </aside>

    <section class="col-md-6 col-sm-12">
        <div style="height:180px;background-color:green;"><p>(Green) Main content</p></div>
    </section>


    <aside class="col-md-3 col-sm-12 side" role="complementary">
      <div style="height:140px;background-color:silver;">(Grey) Right col (bottom mobile)<br>This pushes the "Left col bottom" down/away</div>   
    </aside>


    <aside class="col-md-3 col-sm-12 side col-md-pull-9" role="complementary">
        <div style="height:100px;background-color:yellow;">(Yellow) Left col bottom (bottom mobile)(.col-md-pull-9 woks partially when Right col is not high)</div>
    </aside>

</div>
<div class="row" style="background-color:grey;"><p align="center">Bottom line</p></div>
  

(Без правой боковой панели все намного прощеhttp://www.bootply.com/NlsKWaUFq4 )

Дублирование материала и использование классов видимости начальной загрузки, вероятно, решат эту проблему. Но это не очень элегантно.

Ответ №1:

Просто попробуйте изолировать разделы, такие как ((первый слева в сторону содержимое второй слева в сторону) правый в сторону)

 <div class="row">

    <div class="col-md-9">
        <div class="row">        
            <aside class="col-md-4 col-sm-12 side" role="complementary">
              <div style="height:40px;background-color:red;"><p>(Red) First left aside block</p></div>
            </aside>
            <section class="col-md-8 col-sm-12 main-content">
                <div style="height:180px;background-color:green;"><p>(Green) Main content</p></div>
            </section>
            <aside class="col-md-4 col-sm-12 side side-2" role="complementary">
                <div style="height:100px;background-color:yellow;">(Yellow) Second left aside block</div>
            </aside>
        </div>
    </div>

    <aside class="col-md-3 col-sm-12 side" role="complementary">
      <div style="height:140px;background-color:silver;">(Grey) Right aside</div>   
    </aside>

</div>
<div class="row" style="background-color:grey;"><p align="center">Bottom line</p></div>
  

и css

 @media (min-width:992px){
    .main-content{float:right!important;}
    .side-2{float:left!important;}
}
  

Обновление: http://www.bootply.com/Ho1wjgKCGx

Комментарии:

1. Спасибо! Я добавил clear:left; to .side-2 на случай, если значение «Первый слева в сторону» выше, чем «Основное содержимое» bootply.com/RxKh31aH6n

2. Добавление дополнительного «Справа в сторону (верхний мобильный)» может быть выполнено следующим образом: bootply.com/1EcufJM6O4