تنظیمات پیش فرض Bootstrap
هنگام استفاده از Bootstrap ، تنظیمات فرم ها(form controls) به طور اتوماتیک، یک سری از تنظیمات استایل عمومی را از Bootstrap دریافت می کنند:
تمام عناصر متنی، از قبیل <input> و <textarea> و <select>، که از کلاس form-control. استفاده می کنند، دارای عرضی برابر با %100 خواهند بود.
قالب بندی فرم ها در Bootstrap
Bootstrap سه نوع قالب بندی برای فرم ارائه می کند :
-
فرم عمودی (حالت پیش فرض)
-
فرم افقی
-
فرم درون خطی (inline)
فرم عمودی در Bootstrap (حالت پیش فرض)
مثال زیر یک فرم عمودی با دو فیلد input ، یک checkbox ، و یک submit button ایجاد می کند :
<!DOCTYPE html>
<html lang="en">
<head>
<title>Bootstrap Example</title>
<meta charset="utf-8">
<meta name="viewport" content="width=device-width, initial-scale=1">
<link rel="stylesheet" href="http://maxcdn.bootstrapcdn.com/bootstrap/3.3.5/css/bootstrap.min.css">
<script src="https://ajax.googleapis.com/ajax/libs/jquery/1.11.3/jquery.min.js"></script>
<script src="http://maxcdn.bootstrapcdn.com/bootstrap/3.3.5/js/bootstrap.min.js"></script>
</head>
<body>
<div class="container">
<h2>Vertical (basic) form</h2>
<form role="form">
<div class="form-group">
<label for="email">Email:</label>
<input type="email" class="form-control" id="email" placeholder="Enter email">
</div>
<div class="form-group">
<label for="pwd">Password:</label>
<input type="password" class="form-control" id="pwd" placeholder="Enter password">
</div>
<div class="checkbox">
<label><input type="checkbox"> Remember me</label>
</div>
<button type="submit" class="btn btn-default">Submit</button>
</form>
</div>
</body>
</html>
فرم درون خطی (inline) در Bootstrap
در یک فرم درون خطی، تمام عناصر به صورت خطی و چپ چین می باشند و برچسب ها نیز کنار آنها می باشند:
نکته: این ویژگی، تنها برای فرم هایی که دارای منطقه ی دید با عرض حداقل 768 پیکسل می باشند اعمال خواهد شد.
قواعد اضافی برای یک فرم درون خطی:
کلاس form-inline. را به عنصر <form> اضافه کنید.
مثال زیر، یک فرم درون خطی را به همراه دو فیلد input و یک checkbox و یک دکمه ی submit ایجاد می کند:
<!DOCTYPE html>
<html lang="en">
<head>
<title>Bootstrap Example</title>
<meta charset="utf-8">
<meta name="viewport" content="width=device-width, initial-scale=1">
<link rel="stylesheet" href="http://maxcdn.bootstrapcdn.com/bootstrap/3.3.5/css/bootstrap.min.css">
<script src="https://ajax.googleapis.com/ajax/libs/jquery/1.11.3/jquery.min.js"></script>
<script src="http://maxcdn.bootstrapcdn.com/bootstrap/3.3.5/js/bootstrap.min.js"></script>
</head>
<body>
<div class="container">
<h2>Inline form</h2>
<p>Make the viewport larger than 768px wide to see that all of the form elements are inline, left aligned, and the labels are alongside.</p>
<form class="form-inline" role="form">
<div class="form-group">
<label for="email">Email:</label>
<input type="email" class="form-control" id="email" placeholder="Enter email">
</div>
<div class="form-group">
<label for="pwd">Password:</label>
<input type="password" class="form-control" id="pwd" placeholder="Enter password">
</div>
<div class="checkbox">
<label><input type="checkbox"> Remember me</label>
</div>
<button type="submit" class="btn btn-default">Submit</button>
</form>
</div>
</body>
</html>
نکته : اگر شما برای هر عنصر ورودی(input) یک برچسب اضافه نکنید، screen reader ها با فرم شما به مشکل برخواهند خورد. می توانید با استفاده از کلاس sr-only.، بر چسب ها را برای تمام دستگاه ها به جز screen reader ها پنهان کنید.
مثال
<!DOCTYPE html>
<html lang="en">
<head>
<title>Bootstrap Example</title>
<meta charset="utf-8">
<meta name="viewport" content="width=device-width, initial-scale=1">
<link rel="stylesheet" href="http://maxcdn.bootstrapcdn.com/bootstrap/3.3.5/css/bootstrap.min.css">
<script src="https://ajax.googleapis.com/ajax/libs/jquery/1.11.3/jquery.min.js"></script>
<script src="http://maxcdn.bootstrapcdn.com/bootstrap/3.3.5/js/bootstrap.min.js"></script>
</head>
<body>
<div class="container">
<h2>Inline form with .sr-only class</h2>
<p>Make the viewport larger than 768px wide to see that all of the form elements are inline, left aligned, and the labels are alongside.</p>
<form class="form-inline" role="form">
<div class="form-group">
<label class="sr-only" for="email">Email:</label>
<input type="email" class="form-control" id="email" placeholder="Enter email">
</div>
<div class="form-group">
<label class="sr-only" for="pwd">Password:</label>
<input type="password" class="form-control" id="pwd" placeholder="Enter password">
</div>
<div class="checkbox">
<label><input type="checkbox"> Remember me</label>
</div>
<button type="submit" class="btn btn-default">Submit</button>
</form>
</div>
</body>
</html>
فرم افقی در Bootstrap
یک فرم افقی از دیگر فرم ها متمایز می باشد، هم از نظر مقدار کدها و هم از نظر ارائه ی فرم مورد نظر.
قواعد اضافی برای یک فرم افقی:
-
کلاس form-horizontal. را به عنصر <form> اضافه کنید.
-
کلاس control-label. را به تمام عناصر <label> اضافه کنید.
نکته: می توانید از کلاس های شبکه بندی از پیش تعریف شده Bootstrap برای تراز بندی کردن برچسب ها و کنترل کننده های فرم ، در یک طرح بندی افقی استفاده کنید.
در مثال زیر یک فرم افقی را به همراه دو فیلد ورودی (input) و یک checkbox و یک دکمه ی submit ایجاد می کنیم:
<!DOCTYPE html>
<html lang="en">
<head>
<title>Bootstrap Example</title>
<meta charset="utf-8">
<meta name="viewport" content="width=device-width, initial-scale=1">
<link rel="stylesheet" href="http://maxcdn.bootstrapcdn.com/bootstrap/3.3.5/css/bootstrap.min.css">
<script src="https://ajax.googleapis.com/ajax/libs/jquery/1.11.3/jquery.min.js"></script>
<script src="http://maxcdn.bootstrapcdn.com/bootstrap/3.3.5/js/bootstrap.min.js"></script>
</head>
<body>
<div class="container">
<h2>Horizontal form</h2>
<form class="form-horizontal" role="form">
<div class="form-group">
<label class="control-label col-sm-2" for="email">Email:</label>
<div class="col-sm-10">
<input type="email" class="form-control" id="email" placeholder="Enter email">
</div>
</div>
<div class="form-group">
<label class="control-label col-sm-2" for="pwd">Password:</label>
<div class="col-sm-10">
<input type="password" class="form-control" id="pwd" placeholder="Enter 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">Submit</button>
</div>
</div>
</form>
</div>
</body>
</html>