Прикрепленный дизайн с независимыми колонками - Twitter bootstrap

У меня большие трудности с достижением этого взгляда на моей странице: макет

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

Затем справа я хочу три div, которые выглядят как на картинке. Когда вы начнете прокручивать страницу вниз, правая "группа" должна следовать за прокруткой.

* Обратите внимание, что правые делители имеют РАЗЛИЧНЫЙ размер от левых.

* Обратите внимание, что все это должно быть внутри class="container", чтобы оно не было полной шириной.

Я пытался поместить столбцы в столбцы и аффикс для правых блоков "div", но он просто ломается, когда я прокручиваю или просто изменяю размер страницы...

По запросу вот код, который у меня есть. (Я включаю только тело)

HTML - генерирует довольно точное отображение страницы. Однако, когда аффикс повернут, правая панель внезапно "становится больше". Также на небольших устройствах нижняя часть правой панели не видна, так как она падает в нижний колонтитул. (Зависит от размера окна)

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

<div class="container">
    <div class="row">
        <div class="col-md-9">
            <div class="pbcontainer">
                PBCONTAINER:

                <div class="pbcontent">
                    <div class="caption">
                        <h3>Dimensioner</h3>
                        <form>
                            <div class="form-group">
                                <p>Bredd & Höjd</p>
                                <div class="input-group">


                                    <input type="text" class="form-control" id="bredd" placeholder="Ange bredd i mm">
                                    <input type="text" class="form-control" id="höjd" placeholder="Ange höjd i mm">

                                    <span class="input-group-addon" id="basic-addon2">mm</span>
                                </div>
                            </div>
                    </div>
                </div>

                <div class="alert alert-danger" role="alert"><span class="glyphicon glyphicon-exclamation-sign" aria-hidden="true"></span> Bredd för stor!  -  <a href="#">Varför?</a></div>
                <div class="alert alert-warning" role="alert"><span class="glyphicon glyphicon-pencil" aria-hidden="true"></span> Motortypen du har valt orkar inte bära en såhär bredd rullgardin, vill du vi skall välja rätt åt dig? - <a href="#">Ja Tack!</a></div>

                <div class="pbcontent">





                </div>


                <div class="pbcontent">
                    Hejhejhej jag ligger i pbcontent2:
                    Jag innehåller mycket content</br>
                    Jag innehåller mycket content</br>
                    Jag innehåller mycket content</br>
                    Jag innehåller mycket content</br>
                </div>
                <div class="pbcontent">
                    Hejhejhej jag ligger i pbcontent2:
                    Jag innehåller mycket content</br>
                    Jag innehåller mycket content</br>
                    Jag innehåller mycket content</br>
                    Jag innehåller mycket content</br>
                </div>
                <div class="pbcontent">
                    Hejhejhej jag ligger i pbcontent2:
                    Jag innehåller mycket content</br>
                    Jag innehåller mycket content</br>
                    Jag innehåller mycket content</br>
                    Jag innehåller mycket content</br>
                </div>
                <div class="pbcontent">
                    Hejhejhej jag ligger i pbcontent2:
                    Jag innehåller mycket content</br>
                    Jag innehåller mycket content</br>
                    Jag innehåller mycket content</br>
                    Jag innehåller mycket content</br>
                </div>
                <div class="pbcontent">
                    Hejhejhej jag ligger i pbcontent2:
                    Jag innehåller mycket content</br>
                    Jag innehåller mycket content</br>
                    Jag innehåller mycket content</br>
                    Jag innehåller mycket content</br>
                </div>
                <div class="pbcontent">
                    Hejhejhej jag ligger i pbcontent2:
                    Jag innehåller mycket content</br>
                    Jag innehåller mycket content</br>
                    Jag innehåller mycket content</br>
                    Jag innehåller mycket content</br>
                </div>
                <div class="pbcontent">
                    Hejhejhej jag ligger i pbcontent2:
                    Jag innehåller mycket content</br>
                    Jag innehåller mycket content</br>
                    Jag innehåller mycket content</br>
                    Jag innehåller mycket content</br>
                </div>
                <div class="pbcontent">
                    Hejhejhej jag ligger i pbcontent2:
                    Jag innehåller mycket content</br>
                    Jag innehåller mycket content</br>
                    Jag innehåller mycket content</br>
                    Jag innehåller mycket content</br>
                </div>
            </div>
        </div>



        <!-- Rightside panel -->
        <div class="col-md-3">
            <div class="pbcontainer" data-spy="affix" data-offset-top="150" >
                PBCONTAINER:
                <div class="pbcontent">
                    <div class="caption">
                        <h3>Pris: 549kr</h3>
                        <p><b>Varav Tillval:</b>129kr</p>
                        <p>- Fjärrkontroll: 50kr</p>
                        <p>- Extra List: 25kr
                        <p><b>Slutpris </b>549kr</p>



                        <a href="#" class="btn btn-default" role="button">Rensa Konfiguration</a>
                    </div>
                </div>
                <div class="pbcontent">
                    <div class="caption">
                        <h3>Konfiguration</h3>
                        <p><b>Rullgardin: </b>2500mm x 1000mm</p>
                        <p><b>Tyg: </b>Carina Yellowgreen 40570-6979</p>
                        <p><b>Färg:</b>Grön</p>
                        <p><b>Egenskaper:</b>Translucent 30% (Genomskilnig)</p>


                        <a href="#" class="btn btn-default" role="button">Rensa Konfiguration</a>
                    </div>
                </div>
                <div class="pbcontent">
                    <div class="caption">
                        <h3>Frakt</h3>
                        <div class="form-group">
                            <p>Ange Postnummer</p>
                            <div class="input-group">

                                <input type="text" class="form-control" id="postalnumber" placeholder="Ex: 220 53">
                            </div>
                        </div>
                        <p><a href="#" class="btn btn-primary" role="button">Lägg till i kundkorg</a> 
                    </div>
                </div>
            </div>
        </div>
    </div>
</div>

Интересный CSS здесь

@media (max-width: 990px){

   .affix {         /* change sidenav selector to match your layout */   

    position: static;    /* removes the affix behaviour */
    width: auto;         /* customise as required */
    top: 0;               /* customise as required */
    }  
    }

а также

    .pbcontent {
    display: block;
    padding: 4px;
    margin-bottom: 20px;
    line-height: 1.42857143;
    /* background-color: #fff;*/
    border: 1px solid #ddd;
    border-radius: 4px;
    -webkit-transition: border .2s ease-in-out;
    -o-transition: border .2s ease-in-out;
    transition: border .2s ease-in-out;
    word-wrap: break-word


}
.pbcontent > img,
.pbcontenta > img {
    margin-right: auto;
    margin-left: auto;
}
a.pbcontent:hover,
a.pbcontent:focus,
a.pbcontent.active {
    border-color: #337ab7;
}
.pbcontent .caption {
    padding: 9px;
    /* color: #333; */
}
.pbcontainer {
    display: block;

    margin-bottom: 20px;
    line-height: 1.42857143;
    /* background-color: #fff;*/


    -webkit-transition: border .2s ease-in-out;
    -o-transition: border .2s ease-in-out;
    transition: border .2s ease-in-out;
}

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

Нормальный размер

1 ответ

Вы можете решить вторую проблему (на небольших устройствах нижняя часть правой панели не видна, так как она падает в нижний колонтитул), добавив data-offset-bottom="x" рядом с вашим data-offset-top="150", с x быть высотой вашего нижнего колонтитула. Возможно, вам также потребуется установить процент max-height помогать.

Если у вас есть ссылка на ваш рабочий код, мы увидим, как увеличивается правый столбец при активации аффикса.

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