Bootstrap 3.0: Как иметь текст и ввод в одной строке?
в настоящее время я переключаю свой сайт на Bootstrap 3.0. У меня возникли проблемы с вводом формы и форматированием текста. То, что работало в Bootstrap 2, не работает в Bootstrap 3.
Как я могу получить текст в одной строке до и после ввода формы? Я сузил его до Проблемы с классом "form-control" в версии Bootstrap 3 примера.
Как я могу получить весь текст и ввод на одной строке? Я хотел бы bootstrap 3 пример, чтобы выглядеть как пример bootstrap 2 в jsfiddle.
<div class="container ">
<form>
<h3> Format used to look like this in Bootstrap 2 </h3>
<div class="row ">
<label for="return1"><b>Return:</b></label>
<input id="return1" name='return1' class=" input input-sm" style="width:150px"
type="text" value='8/28/2013'>
<span id='return1' style='color:blue'> +/- 14 Days</span>
</div>
<br>
<br>
<h3> BootStrap 3 Version </h3>
<div class="row">
<label for="return2"><b>Return:</b></label>
<input id="return2" name='return2' class="form-control input input-sm" style="width:150px"
type="text" value='8/28/2013'>
<span id='return2' style='color:blue'> +/- 14 Days</span>
</div>
</form>
обновление: Я меняю код на этот, который работает, но теперь у него проблемы с выравниванием. Есть идеи?
<div class="form-group">
<div class="row">
<div class="col-xs-3">
<label for="class_type"><h2><span class=" label label-primary">Class Type</span></h2></label>
</div>
<div class="col-xs-2">
<select name="class_type" id="class_type" class=" form-control input-lg" style="width:200px" autocomplete="off">
<option >Economy</option>
<option >Premium Economy</option>
<option >Club World</option>
<option >First Class</option>
</select>
</div>
</div>
9 ответов:
Я бы поставил каждый элемент, который вы хотите встроить в отдельный col-md - * div В вашей строке. Или принудительно отображать элементы в строке. Класс form-control отображает блок, потому что именно так bootstrap считает, что это должно быть сделано.
прямо из документации http://getbootstrap.com/css/#forms-horizontal.
используйте предопределенные классы сетки Bootstrap для выравнивания меток и групп элементов управления формы в горизонтальной компоновке путем добавления
.form-horizontal
в форме (которая не должна быть<form>
). Это изменяет.form-groups
вести себя как строки сетки, так что нет необходимости.row
.пример:
<form class="form-horizontal"> <div class="form-group"> <label for="inputEmail3" class="col-sm-2 control-label">Email</label> <div class="col-sm-10"> <input type="email" class="form-control" id="inputEmail3" placeholder="Email"> </div> </div> <div class="form-group"> <label for="inputPassword3" class="col-sm-2 control-label">Password</label> <div class="col-sm-10"> <input type="password" class="form-control" id="inputPassword3" placeholder="Password"> </div> </div> <div class="form-group"> <div class="col-sm-offset-2 col-sm-10"> <div class="checkbox"> <label> <input type="checkbox"> Remember me </label> </div> </div> </div> <div class="form-group"> <div class="col-sm-offset-2 col-sm-10"> <button type="submit" class="btn btn-default">Sign in</button> </div> </div> </form>
вы можете сделать это так:
<form class="form-horizontal" role="form"> <div class="form-group"> <label for="inputType" class="col-sm-2 control-label">Label</label> <div class="col-sm-4"> <input type="text" class="form-control" id="input" placeholder="Input text"> </div> </div> </form>
способ, которым я решил это было просто добавить переопределение для всех моих текстовых полей на главном css моего сайта, как так:
.form-control { display:initial !important; }
просто дайте матери div "class=" col-lg-12""
<div class="form-group"> <div class="row"> <div class="col-xs-3"> <label for="class_type"><h2><span class=" label label-primary">Class Type</span></h2></label> </div> <div class="col-xs-2"> <select name="class_type" id="class_type" class=" form-control input-lg" style="width:200px" autocomplete="off"> <option >Economy</option> <option >Premium Economy</option> <option >Club World</option> <option >First Class</option> </select> </div> </div>
будет
<div class="form-group"> <div class="col-lg-12"> <div class="row"> <div class="col-xs-3"> <label for="class_type"><h2><span class=" label label-primary">Class Type</span></h2></label> </div> <div class="col-xs-2"> <select name="class_type" id="class_type" class=" form-control input-lg" style="width:200px" autocomplete="off"> <option >Economy</option> <option >Premium Economy</option> <option >Club World</option> <option >First Class</option> </select> </div> </div> </div>
пожалуйста, проверьте обновленный код, как мы должны использовать
form-control-static not only form-control
http://jsfiddle.net/tusharD/58LCQ/34/
спасибо с уважением
или вы можете сделать это:
<table> <tr> <td><b>Return:</b></td> <td><input id="return1" name='return1' class=" input input-sm" style="width:150px" type="text" value='8/28/2013'></td> </tr> </table>
я попробовал каждый из предложений выше, и ни один из них не работал. Я не хочу выбирать фиксированное количество столбцов в сетке из 12 столбцов. Я хочу, чтобы приглашение и ввод сразу после него, и я хочу, чтобы столбцы растягивались по мере необходимости.
Да, я знаю,что это против того, что bootstrap все О. И вы никогда не должны использовать таблицу. Потому что DIV намного лучше, чем таблицы. Но проблема в том, что таблицы, строки и ячейки фактически работать.
да-я действительно знаю, что есть фанатики CSS, и реакция коленного рефлекса никогда никогда не использует таблицу, TR и TD. Да, я знаю, что DIV class="таблица" с DIV class="строка" и DIV class="ячейка" намного лучше. За исключением тех случаев, когда это не работает, и есть много случаев. Я не считаю, что люди должны слепо игнорировать эти ситуации. Бывают случаи, что таблица/TR / TD будет работать просто отлично, и нет причин использовать более сложный и более хрупкий подход только потому, что он считается более элегантным. Разработчик должен понимать, каковы преимущества различных подходов, и компромиссы, и нет абсолютного правила, что DIVs лучше.
" пример - на основе этого обсуждения я преобразовал несколько существующих tds и trs в divs. 45 минут возился с ним, пытаясь заставить все выстроиться рядом друг с другом, и я сдался. TDs возвращается через 10 секунд - работает-сразу - на всех браузерах, больше делать нечего. Пожалуйста, попытайтесь заставить меня понять-какое у вас есть возможное оправдание для того, чтобы я сделал это по-другому!"См. [https://stackoverflow.com/a/4278073/1758051]
и вот это: "
макет должен быть легким. Тот факт, что есть статьи, написанные о том, как достичь динамического трехколоночного макета с верхним и нижним колонтитулами в CSS, показывает, что это плохая система макета. Конечно, вы можете заставить его работать, но есть буквально сотни статей в интернете о том, как это сделать. Таких статей для аналогичного макета с таблицами практически нет, потому что это очевидно. Независимо от того, что вы говорите против таблиц и в пользу CSS, этот факт отменяет все это: базовый макет из трех столбцов в CSS часто называют "Святым Граалем"."[https://stackoverflow.com/a/4964107/1758051]
мне еще предстоит увидеть способ заставить DIVs всегда выстраиваться в колонку во всех ситуациях. Мне все время показывают тривиальное примеры, которые на самом деле не сталкиваются с проблемами. "Отзывчивый" - это предоставление способа, которым они не будет всегда выстраиваются в колонну. Однако, если вы действительно хотите колонку, вы можете тратить часы, пытаясь заставить DIV работать. Иногда вам нужно использовать соответствующую технологию, независимо от того, что говорят фанатики.