У меня сложная веб-форма, в которой много полей в одной строке. Встроенная форма Bootstrap отлично работала на больших экранах. Однако необходимо сделать страницу адаптивной, чтобы встроенная форма преобразовывалась в трехколоночную сетку на небольших экранах, таких как планшеты и телефоны.
Встроенная форма на большом экране:
Требуемый макет на экране мобильного
Является ли это возможным? Это для Bootstrap 3.
Любые советы приветствуются!
Фрагмент кода:
<div class="container">
<form class="form-horizontal" data-toggle="validator" role="form" action="" method="post" id="form1">
<fieldset style="background-color:#F7F7F7">
<div class="row">
<div class="form-inline" style="text-align:left">
<div class="form-group" style="margin-right:30px;">
<div class="floating-label-form-group" style="top:-5px;width:180px">
<label class="control-label" for="Selection1">Selection1</label>
<select id="Selection1" name="Selection1" class="form-control relationship selectpicker" required>
<option value="" disabled selected>Selection1 *</option>
<option value="1">option 1</option>
<option value="2">option 2/option>
<option value="3">option 3</option>
</select>
</div>
<span class="help-block with-errors"></span>
</div>
<div class="form-group ">
<div class="floating-label-form-group">
<label class="control-label" for="fName">1st Name</label>
<input id="fName" name="fName" type="text" required>
</div>
<span class="help-block with-errors"></span>
</div>
<div class="form-group " style="margin-right:30px">
<div class="floating-label-form-group">
<label class="control-label" for="lName">Last Name</label>
<input id="lName" name="lName" type="text" required>
</div>
<span class="help-block with-errors"></span>
</div>
<div class="form-group">
<div class="floating-label-form-group" style="top:-5px;width:120px">
<label class="control-label" for="gender">Gender</label>
<select id="gender" name="gender" class="form-control selectpicker" required>
<option value="" disabled selected>gender *</option>
<option value="1">M</option>
<option value="2">F</option>
</select>
</div>
<span class="help-block with-errors"></span>
</div>
<div class="form-group">
<div class="floating-label-form-group" style="top:-5px;width:160px">
<label class="control-label" for="selection2">Selection2</label>
<select id="selection2" name="selection2" class="form-control selectpicker" required>
<option value="" disabled selected>Selection2 *</option>
<option value="1">option 1</option>
<option value="2">option 2</option>
</select>
</div>
<span class="help-block with-errors"></span>
</div>
</div>
</div><!-- /row -->
</fieldset>
</form>
3 ответа
Я изменил часть вашей разметки HTML, удалил некоторые встроенные стили и добавил несколько классов.
Вот что вы ищете:
.myform {
margin-top: 10px;
}
.myform fieldset {
padding: 10px 20px;
background-color: #F7F7F7;
}
.myform .form-group {
display: block;
}
.myform input,
.myform select {
min-width: 100%;
border-radius: 0;
}
.myform .double-input {
margin: 0;
}
.myform .double-input div[class^='col-'],
.myform .double-input div[class*=' col-'] {
padding-left: 0;
}
.myform .double-input:first-child div[class^='col-'],
.myform .double-input:first-child div[class*=' col-'] {
padding: 0;
}
@media (min-width: 992px) {
.control-label {
text-align: left;
display: block;
}
.myform .double-input:first-child div[class^='col-'],
.myform .double-input:first-child div[class*=' col-'] {
padding-right: 3px;
}
}
@media (max-width: 992px) {
.myform input,
.myform select {
border-top: 0;
border-right: 0;
border-left: 0;
}
#fName {
border-right: 1px solid #ccc;
}
#gender {
border-right: 1px solid #ccc;
}
}
<link href="https://maxcdn.bootstrapcdn.com/bootstrap/3.3.6/css/bootstrap.min.css" rel="stylesheet" />
<div class="container">
<form class="myform" data-toggle="validator" role="form" action="" method="post" id="form1">
<fieldset>
<div class="row">
<div class="col-md-2">
<div class="form-group">
<div class="floating-label-form-group">
<label class="control-label" for="Selection1">Selection1</label>
<select id="Selection1" name="Selection1" class="form-control relationship selectpicker" required>
<option value="" disabled selected>Selection1 *</option>
<option value="1">option 1</option>
<option value="2">option 2/option>
<option value="3">option 3</option>
</select>
</div>
<span class="help-block with-errors"></span>
</div>
</div>
<div class="col-md-5">
<div class="row double-input">
<div class="col-xs-6">
<div class="form-group">
<div class="floating-label-form-group">
<label class="control-label" for="fName">1st Name</label>
<input id="fName" class="form-control" name="fName" type="text" required>
</div>
<span class="help-block with-errors"></span>
</div>
</div>
<div class="col-xs-6">
<div class="form-group ">
<div class="floating-label-form-group">
<label class="control-label" for="lName">Last Name</label>
<input id="lName" class="form-control" name="lName" type="text" required>
</div>
<span class="help-block with-errors"></span>
</div>
</div>
</div>
</div>
<div class="col-md-5">
<div class="row double-input">
<div class="col-xs-6">
<div class="form-group">
<div class="floating-label-form-group">
<label class="control-label" for="gender">Gender</label>
<select id="gender" name="gender" class="form-control selectpicker" required>
<option value="" disabled selected>gender *</option>
<option value="1">M</option>
<option value="2">F</option>
</select>
</div>
<span class="help-block with-errors"></span>
</div>
</div>
<div class="col-xs-6">
<div class="form-group">
<div class="floating-label-form-group">
<label class="control-label" for="selection2">Selection2</label>
<select id="selection2" name="selection2" class="form-control selectpicker" required>
<option value="" disabled selected>Selection2 *</option>
<option value="1">option 1</option>
<option value="2">option 2</option>
</select>
</div>
<span class="help-block with-errors"></span>
</div>
</div>
</div>
</div>
</div>
<!-- /row -->
</fieldset>
</form>
<link href="https://maxcdn.bootstrapcdn.com/bootstrap/3.3.6/css/bootstrap.min.css" rel="stylesheet"/>
<div class="container-fluid">
<form class="form-horizontal" data-toggle="validator" role="form" action="" method="post" id="form1">
<fieldset style="background-color:#F7F7F7" style="width:100%;">
<div class="row">
<div class="form-inline" style="text-align:left">
<div class="form-group col-xs-12 col-sm-4 col-sm-push-8">
<div class="floating-label-form-group col-xs-6 no-pad-right">
<label class="control-label" for="gender">Gender</label>
<select id="gender" name="gender" class="form-control selectpicker" required>
<option value="" disabled selected>gender *</option>
<option value="1">M</option>
<option value="2">F</option>
</select>
<span class="help-block with-errors">Gender helper text</span>
</div>
<div class="floating-label-form-group col-xs-6 no-pad-right">
<label class="control-label" for="selection2">Selection2</label>
<select id="selection2" name="selection2" class="form-control selectpicker" required>
<option value="" disabled selected>Selection2 *</option>
<option value="1">option 1</option>
<option value="2">option 2</option>
</select>
<span class="help-block with-errors">Selection2 helper text</span>
</div>
</div>
<div class="form-group col-xs-12 col-sm-3 col-sm-pull-3">
<div class="floating-label-form-group col-md-12 no-pad-right">
<label class="control-label" for="Selection1">Selection1</label>
<select id="Selection1" name="Selection1" class="form-control relationship selectpicker" required>
<option value="" disabled selected>Selection1 *</option>
<option value="1">option 1</option>
<option value="2">option 2/option>
<option value="3">option 3</option>
</select>
<span class="help-block with-errors">Selection1 helper text</span>
</div>
</div>
<div class="form-group col-xs-12 col-sm-5 col-sm-pull-3">
<div class="floating-label-form-group col-xs-6 no-pad-right">
<label class="control-label" for="fName">1st Name</label>
<input id="fName" name="fName" class="form-control" type="text" required>
<span class="help-block with-errors">1st Name helper text</span>
</div>
<div class="floating-label-form-group col-xs-6 no-pad-right">
<label class="control-label" for="lName">Last Name</label>
<input id="lName" name="lName" class="form-control" type="text" required>
<span class="help-block">Last Name helper text</span>
</div>
</div>
</div>
</div><!-- /row -->
</fieldset>
</form>
Попробуй это. используя col-md-push- * и col-md-pull- *
Обновлено JSFIDDLE
Здесь используется класс form-inline до класса form-group и стиля
.form-inline .form-control {
width: 100%;
}
.nopadding {
padding: 0px 2px 0px 0px !important;
margin: 0px !important;
}
<script src="http://netdna.bootstrapcdn.com/bootstrap/3.0.0/js/bootstrap.min.js"></script>
<link href="http://netdna.bootstrapcdn.com/bootstrap/3.0.0/css/bootstrap.min.css" rel="stylesheet"/>
<div class="container">
<div class="form-inline">
<div class="form-group">
<div class="row">
<div class="col-md-4 col-md-push-8">
<div class="col-xs-6 nopadding">
<label class="control-label" for="lName">Gender</label>
<select id="gender" name="gender" class="form-control selectpicker" required>
<option value="" disabled selected>gender *</option>
<option value="1">M</option>
<option value="2">F</option>
</select>
</div>
<div class="col-xs-6 nopadding">
<label class="control-label" for="selection2">Selection2</label>
<select id="selection2" name="selection2" class="form-control selectpicker" required>
<option value="" disabled selected>Selection2 *</option>
<option value="1">option 1</option>
<option value="2">option 2</option>
</select>
</div></div>
<div class="col-md-4">
<div class="col-xs-6 nopadding">
<div class="floating-label-form-group">
<label class="control-label" for="fName">1st Name</label>
<input class="form-control" id="fName" name="fName" type="text" required>
</div>
</div>
<div class="col-xs-6 nopadding">
<label class="control-label" for="lName">Last Name</label>
<input class="form-control" id="lName" name="lName" type="text" required>
</div></div>
<div class="col-md-4 col-md-pull-8">
<div class="col-xs-12 nopadding">
<label class="control-label" for="Selection1">Selection1</label>
<select id="Selection1" name="Selection1" class="form-control relationship selectpicker" required>
<option value="" disabled selected>Selection1 *</option>
<option value="1">option 1</option>
<option value="2">option 2</option>
<option value="3">option 3</option>
</select>
</div>
</div>
</div>
</div>
</div>
Похожие вопросы
Новые вопросы
jquery
jQuery — это библиотека JavaScript. Также рассмотрите возможность добавления тега JavaScript. jQuery — это популярная кросс-браузерная библиотека JavaScript, которая упрощает обход объектной модели документа (DOM), обработку событий, анимацию и взаимодействие AJAX, сводя к минимуму расхождения между браузерами. Вопрос с тегом jQuery должен быть связан с jQuery, поэтому jQuery должен использоваться рассматриваемым кодом, и в вопросе должны быть как минимум элементы, связанные с использованием jQuery.