2015-11-24 2 views
1

Я пытаюсь создать заголовок страницы/панель инструментов. Это в существующей теме, и там есть DIV наверху, где это будет. Основная посылка слева - название H2, а справа - куча элементов бутстрапа (форма поиска, блокировки, выпадающие списки и т. Д.)Горизонтальное и вертикальное выравнивание панели инструментов с элементами Bootstrap

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

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

Вот ссылка Bootply:.. http://www.bootply.com/BPucyP8mpk

<div class"container">  
<div id="left"> 
     <h2 class="">Title</h2> 

</div> 

<div id="right"> 
    <form class="form form-horizontal"> 
    <input type="text" placeholder="search field" class="form-control"> 
    <button type="submit" class="btn">search</button> 
    </form> 
    <button class="btn btn-default">Button</button> 
    <div class="btn-group"> 
    <button class="btn">Left</button> 
    <button class="btn">Middle</button> 
    <button class="btn">Right</button> 
    </div> 
    <div class="btn-group"><a class="btn dropdown-toggle" data-toggle="dropdown" href="#">Dropdown<span class="caret"></span></a> 
    <ul class="dropdown-menu"> 
     <li><a href="#" class="">Choice1</a> 
     </li> 
     <li><a href="#" class="">Choice2</a> 
     </li> 
     <li><a href="#" class="">Choice3</a> 
     </li> 
     <li class="divider"></li> 
     <li><a href="#" class="">Choice..</a> 


    </li> 
     </ul> 
     </div> 
    </div> 
</div> 

UPDATE:

Вот вычисленная CSS, который оборачивает заголовок я пытаюсь формат:

border-bottom-width: 1px; 
border-top-color: rgb(103, 106, 108); 
border-top-style: none; 
border-top-width: 0px; 
box-sizing: border-box; 
color: rgb(103, 106, 108); 
display: block; 
font-family: 'Open Sans', 'Helvetica Neue', Helvetica, Arial, sans-serif; 
font-size: 13px; 
height: 70px; 
line-height: 18px; 
margin-left: -15px; 
margin-right: -15px; 
padding-bottom: 12px; 
padding-left: 20px; 
padding-right: 20px; 
padding-top: 0px; 
width: 1318px; 

Это из моей пользовательской темы я установил. Это вычисленное CSS с этой обертки DIV:

<div class="row wrapper border-bottom white-bg page-heading"> 
</div> 
+0

почему вы не используете Col-MD- * класс для этого –

+0

у меня есть, что (как ответ ниже), но моя забота (может быть, не должно быть большой проблемой) заключается в том, что если я делаю col-lg-4/col-lg-8 или col-lg-2/col-lg-10 и т. д. левый столбец может привести к тому, что заголовок будет завершен (у меня есть некоторые значки шрифтов и т. д.), или панель инструментов окажется слишком маленькой. –

+0

что это за проблема в http://www.bootply.com –

ответ

2

UPD:

Наиболее подходящим методом для решения этой задачи является использование Flexbox

Проверьте это: http://www.bootply.com/CtVmUbzrlr

<div class="row"> 
    <div id="left" class="col-sm-3 col-md-5"> 
     <h2 class="">Title</h2> 
    </div> 

<div id="right" class="col-sm-9 col-md-7"> 


    <form class="form form-horizontal"> 
    <div class="input-group"> 
     <input type="text" placeholder="search field" class="form-control"> 
     <span type="submit" class="input-group-addon">search</span> 
    </div> 
    </form> 

    <button class="btn btn-default">Button</button> 

    <div class="btn-group"> 
    <button class="btn">Left</button> 
    <button class="btn">Middle</button> 
    <button class="btn">Right</button> 
    </div> 

    <div class="btn-group"><a class="btn dropdown-toggle" data-toggle="dropdown" href="#">Dropdown<span class="caret"></span></a> 
    <ul class="dropdown-menu"> 
     <li><a href="#" class="">Choice1</a> 
     </li> 
     <li><a href="#" class="">Choice2</a> 
     </li> 
     <li><a href="#" class="">Choice3</a> 
     </li> 
     <li class="divider"></li> 
     <li><a href="#" class="">Choice..</a> 
     </li> 
    </ul> 
    </div> 

</div> 

    </div> 

.row{ 
border: 1px solid #000; 
} 

#right{ 
    display: flex; 
    align-items: center; 
    height: 66px; 
    justify-content: flex-end; 
} 

.input-group{ 
width: 200px; 
} 
+0

Это так близко к тому, что я хочу. См. Мое обновление выше. Мой единственный вопрос - это высота: 66px ;. Как и все другие решения, вам, похоже, нужно жестко закодировать эту высоту или добавить прокладку, чтобы вытащить правый вытащенный div вниз с вершины контейнера. Идеальным решением было бы установить высоту контейнера-обертки и иметь элементы внутри автоматического поля, но у меня создается впечатление, что это действительно невозможно. –

+0

Возможно. Просто добавьте display: flex; к контейнеру. http://www.bootply.com/2GvxoyRkUa – gmrash

+0

Это работает отлично. Единственный недостаток, который я вижу, состоит в том, что элемент не хорошо накладывается на маленькие экраны. Мне, возможно, придется посмотреть на решение гибридного навигационного бара. –

1

Проверьте это:

<div class="col-lg-4"> 
    <h2 class="">Title</h2> 
</div> 

<div class="col-lg-8"> 
    <div class="row"> 
<form class="form form-horizontal"> 
    <div class="col-lg-8"> 
    <input type="text" placeholder="search field" class="form-control"> 
    </div> 
    <div class="col-lg-4"> 
    <button type="submit" class="btn btn-block">search</button> 
    </div> 
</form> 
    </div> 
    <div class="row"> 
    <div class="col-lg-12"> 
<button class="btn btn-default">Button</button> 
<div class="btn-group"> 
    <button class="btn">Left</button> 
    <button class="btn">Middle</button> 
    <button class="btn">Right</button> 
</div> 
<div class="btn-group"><a class="btn dropdown-toggle" data-toggle="dropdown" href="#">Dropdown<span class="caret"></span></a> 
    <ul class="dropdown-menu"> 
     <li><a href="#" class="">Choice1</a> 
     </li> 
     <li><a href="#" class="">Choice2</a> 
     </li> 
     <li><a href="#" class="">Choice3</a> 
     </li> 
     <li class="divider"></li> 
     <li><a href="#" class="">Choice..</a> 
     </li> 
     </ul> 
     </div> 
</div> 
</div> 
</div> 

вы можете проверить bootply также: http://www.bootply.com/LmGjZM6fHH
Вы должны управлять макет с Col-MD- *
Это просто для демонстрации, вы можете организовать с вами собственным путем

1

Что об использовании компонента NavBar от начальной загрузки? http://getbootstrap.com/components/#navbar Я думаю, что пример здесь в значительной степени подводит итог вашим потребностям.

В основном я добавил классы navbar-btn к кнопкам и navbar-form в форму, чтобы заставить их правильно выровнять. Я добавил класс navbar-right как в форму, так и в группу кнопок. http://www.bootply.com/IySnkX2ioK

Редактировать: Класс navbar-default был просто добавлен, чтобы очертить границы навигатора, а не часть решения.

+0

Это близко - проблема всегда возникает, когда вы нажимаете эту панель инструментов, чтобы она игнорировала вертикальное выравнивание и т. Д., И она тянет вверх. Padding исправит это, но я надеялся на решение, которое этого не требовало. Если вы измените высоту контейнера вокруг него, вы должны отрегулировать прокладку. –

0

Прежде всего, если вы хотите, чтобы окно поиска слева - поместите его сначала, а затем группу кнопок с выпадающим списком. Во-вторых, не размещайте navbar-rigth внутри другого navbar-rigth.И последняя вещь - просто обернуть правой стороне элементов в одном div и добавить к нему немного padding

Обновлено link

Смежные вопросы