سلام با آموزش Bootstrap 4 در خدمت شما هستیم در قسمت قبل با مفهوم زیر آشنا شدیم
حال با ادامه آموزش بوت استرپ 4 از دوره آموزش طراحی سایت همراه باشید:
بوت استرپ 4، کلاس ها و امکانات ویژه ای برای کار با فرم ها (تگ <form>) فراهم کرده است.
کنترل های درون تگ Form در بوت استرپ 4، به صورت خودکار کلیه ی استایل عمومی را دریافت می کند. برای مثال کلیه کادرهای متن در فرم ها مثل تگ <input>، تگ <teatarea> و تگ <select> در صورت دریافت کلاس form control، عرضی برابر 100 درصد خواهند داشت.
بوت استرپ 4 دو نوع قالب یا layout در نمایش اجرای فرم به کار می برد :
1-حالت تمام عرض برای هر کنترل (stacked full width) : در این حالت، کنترل های فرم بر روی هم و با عرض 100 درصد صفحه یا عنصر دربرگیرنده، نمایش داده می شوند.
2- حالت درون خطی (inline form): در این حالت کنترل های فرم در کنار هم و در یک خط، حالت چپ چین نمایش داده می شوند.
در کد مثال عملی زیر، یک فرم بوت استرپ با 2 کنترل ورودی کادر متن، یک دکمه checkbox و یک دکمه ارسال submit button ایجاد کرده ایم که در حالت تمام عرض (full width) نمایش داده می شوند.
برای اطمینان از نمایش درست کنترل ها و رعایت مارجین و Padding، هر کنترل را درون یک عنصر دربرگیرنده با کلاس form-group قرار دهید :
<div class="form-group">
<label for="email">Email address:</label>
<input type="email" class="form-control" id="email">
</div>
<div class="form-group">
<label for="pwd">Password:</label>
<input type="password" class="form-control" id="pwd">
</div>
<div class="form-group form-check">
<label class="form-check-label">
<input class="form-check-input" type="checkbox"> Remember me
</label>
</div>
<button type="submit" class="btn btn-primary">Submit</button>
در حالت نمایش درون خطی (inline form)، تمامی کنترل ها در یک خط و با حالت پیش فرض چپ چین نمایش داده می شوند.
نکته :
حالت inline فقط در صفحه نمایش های بزرگتر از عرض 576 پیکسل کار می کند. در صفحات موبایلی و کمتر از عرض 576 پیکسل، به صورت خودکار فرم ها به صورت تمام عرض و هر کنترل در یک خط نمایش داده می شود.
برای نمایش المنت های فرم به صورت درون خطی در Bootstrap 4، بایستی کلاس form-inline. را به تگ <form> اضافه نمایید.
مثال عملی : در کد مثال عملی زیر، دو کنترل کادر متن، یک chechbox و دکمه ارسال submit را در یک فرم به صورت خطی (inline) نمایش داده ایم :
<form class="form-inline" action="/action_page.php">
<label for="email">Email address:</label>
<input type="email" class="form-control" id="email">
<label for="pwd">Password:</label>
<input type="password" class="form-control" id="pwd">
<div class="form-check">
<label class="form-check-label">
<input class="form-check-input" type="checkbox"> Remember me
</label>
</div>
<button type="submit" class="btn btn-primary">Submit</button>
</form>
کنترل های فرم در مثال آموزشی قبلی، بسیار به هم چسبیده و فشرده هستند. شما می توانید از کلاس های کمکی بوت استرپ (utility classes) برای چیدمان بهتر این کنترل ها در فرم استفاده کنید.
مثلا در کد مثال زیر، از کلاس کمکی mr-sm-2. استفاده کرده ایم که در تمامی دستگاه و اندازه های صفحه نمایش، یک مارجین راست 2 پیکسلی را به تمامی کنترل ها می دهد.
همچنین کلاس کمکی mb-2.، در صورتی که کنترل ها در حالت stacked و بر روی هم قرار بگیرند (به دلیل عرض کم جهت نمایش همه آن ها در یک خط)، یک مارجین زیر (bottom margin) به اندازه 2 پیکسل را به همه کنترل ها اضافه کردند. برای درک بهتر به خروجی و کد مثال دقت نمایید :
<form class="form-inline" action="/action_page.php">
<label for="email" class="mr-sm-2">Email address:</label>
<input type="email" class="form-control mb-2 mr-sm-2" id="email">
<label for="pwd" class="mr-sm-2">Password:</label>
<input type="password" class="form-control mb-2 mr-sm-2" id="pwd">
<div class="form-check mb-2 mr-sm-2">
<label class="form-check-label">
<input class="form-check-input" type="checkbox"> Remember me
</label>
</div>
<button type="submit" class="btn btn-primary mb-2">Submit</button>
</form>
راهنمایی :
راهنمایی : به طور کامل در بخش آموزش کلاس های کمکی (Bootstrap 4 utilities classes) به آموزش استفاده از این کلاس ها خواهیم پرداخت.
در بوت استرپ 4، می توانید از کلاس اعتبارسنجی (Validation Classes) برای ارسال فیدبک های چک کردن اطلاعات وارد شده در فرم، به کاربر، استفاده کنید.
می توانید کلاس های was-validated یا needs-validation را به المنت form اضافه کرده، بسته به این که بخواهید فرم را قبل یا بعد از زدن دکمه ارسال یا submit، چک کرده و پیام های اعتبارسنجی را به کاربر نشان دهید.
در صورت ورود اطلاعات درست در هر کادر متن یا input فرم، کنترل دارای خطوط حاشیه سبز (valid) و در صورت ورود اطلاعات اشتباه یا عدم ورود اطلاعات لازم، دارای خطوط حاشیه قرمز (invalid) خواهد بود.
همچنین می توانید از المنت هایی با کلاس valid-feedback یا invalid-feedback برای اعلام دقیق پیام خطا به کاربر و یا اعلام اینکه چه چیزی فراموش شده یا نادرست است، استفاده کنید.
مثال عملی : در کد مثال عملی زیر، تمامی موارد گفته شده فوق را در عمل به کار برده ایم. در این کد از کلاس was-validated استفاده کرده ایم که اطلاعات را قبل از ارسال و زدن دکمه submit، چک خواهد کرد :
<form action="/action_page.php" class="was-validated">
<div class="form-group">
<label for="uname">Username:</label>
<input type="text" class="form-control" id="uname" placeholder="Enter username" name="uname" required="">
<div class="valid-feedback">Valid.</div>
<div class="invalid-feedback">Please fill out this field.</div>
</div>
<div class="form-group">
<label for="pwd">Password:</label>
<input type="password" class="form-control" id="pwd" placeholder="Enter password" name="pswd" required="">
<div class="valid-feedback">Valid.</div>
<div class="invalid-feedback">Please fill out this field.</div>
</div>
<div class="form-group form-check">
<label class="form-check-label">
<input class="form-check-input" type="checkbox" name="remember" required=""> I agree on blabla.
<div class="valid-feedback">Valid.</div>
<div class="invalid-feedback">Check this checkbox to continue.</div>
</label>
</div>
<button type="submit" class="btn btn-primary">Submit</button>
</form>
بوت استرپ 4 از کنترل های فرم و ورود اطلاعات زیر، پشتیبانی می کند :
در ادامه به آموزش کار با هر یک از کنترل های فوق و ارائه مثال های عملی خواهیم پرداخت.
بوت استرپ 4 از کلیه کنترل های ورود اطلاعات (input type) زبان HTML 5 پشتیبانی می کند، از جمله : کادر متن (text)، کادر رمز عبور (password)، کنترل زمان، تاریخ (datetime)، کنترل زمان محلی (datetime-local)، کنترل تاریخ (date)، کنترل ماه جاری (month)، کنترل هفته جاری (week)، کنترل ورود عدد (number)، کنترل ورود ایمیل (email)، کنترل آدرس اینترنتی (url)، کنترل جستجو (search)، کنترل شماره تلفن (tel) و کنترل انتخاب رنگ (color).
بوت استرپ 4، استایل و افکت های زیبایی را برای نمایش بهتر و ریسپانسیو به کنترل های اشاره شده می دهد.
نکته :
اگر نوع (type) را در تگ کنترل های input به درستی و کامل تعیین نکنید، بوت استرپ 4، قادر نخواهد بود استایل مناسب و صحیح را به آن ها بدهد. پس نوع را کامل رعایت نمایید!
مثال عملی : در کد مثال عملی زیر، دو کنترل ورود اطلاعات Input را در فرم قرار داده ایم. یکی کنترل ورود متن type=”text” و دیگری کنترل ورود رمز عبور type=”password”. همانطور که در بخش آموزش کار با فرم ها در بوت استرپ 4، اشاره کردیم، برای استایل دهی کامل Bootstrap 4 به هر کنترل (مثل تمام عرض شدن، استایل بهتر و رعایت padding و مارجین)، بایستی کلاس form-control را به هر تگ input بدهید :
<div class="form-group">
<label for="usr">Name:</label>
<input type="text" class="form-control" id="usr">
</div>
<div class="form-group">
<label for="pwd">Password:</label>
<input type="password" class="form-control" id="pwd">
</div>
کنترل کادر متن textarea، یک کنترل کادر متن بزرگ و چند خطی است که کاربر می توانید مطالب بیشتری را در آن وارد نمایید.
مثال: در کد مثال عملی زیر، یک کنترل textarea را ایجاد کرده ایم که 5 خطی است و به کمک یک تگ مرتبط label برایش عنوان هم تعیین نموده ایم :
<div class="form-group">
<label for="comment">Comment:</label>
<textarea class="form-control" rows="5" id="comment"></textarea>
</div>
کنترل های انتخابی checkbox، برای اینکه یک لیست از گزینه ها به کاربر ارائه داده و وی بتواند یک یا چندین مورد آن ها را انتخاب کند، بسیار مناسب هستند.
مثال عملی : در کد مثال عملی زیر، 3 کنترل انتخابی checkbox را در یک فرم قرار داده ایم که کنترل سوم غیر فعال (disabled) است و کاربر نمی تواند آن را انتخاب کند :
<div class="form-check">
<label class="form-check-label">
<input type="checkbox" class="form-check-input" value="">Option 1
</label>
</div>
<div class="form-check">
<label class="form-check-label">
<input type="checkbox" class="form-check-input" value="">Option 2
</label>
</div>
<div class="form-check">
<label class="form-check-label">
<input type="checkbox" class="form-check-input" value="" disabled 3
</label>
</div>
توضیح مثال : از یک عنصر دربرگیرنده (wrapper) مثل یک تگ div با کلاس class=”form-check” استفاده کرده تا مطمئن شوید کپشن ها (labels) و کنترل های checkbox دارای مارجین و padding مناسب هستند.
سپس به هر آیتم لیبل (label) کلاس form-check-label و به هر کنترل انتخاب کلاس form-check-input داده تا استایل های جدید بوت استرپ 4 به آن ها، اعمال شوند.
اگر در عنصر دربرگیرنده فرم کنترل های انتخابی checkbox از کلاس form-check-inline استفاده نمایید، آن ها به جای قرار گرفتن بر روی هم، در یک خط به صورت inline نمایش داده می شوند، همانند عکس زیر:
مثال 4
<div class="form-check-inline">
<label class="form-check-label">
<input type="checkbox" class="form-check-input" value="">Option 1
</label>
</div>
<div class="form-check-inline">
<label class="form-check-label">
<input type="checkbox" class="form-check-input" value="">Option 2
</label>
</div>
<div class="form-check-inline">
<label class="form-check-label">
<input type="checkbox" class="form-check-input" value="" disabled 3
</label>
</div>
دکمه های رادیویی Radio Buttons در زمانی کاربرد دارند که می خواهید 2 یا چند گزینه را به کاربر ارائه کرده و وی بتواند فقط یکی از آیتم ها را انتخاب نماید، مثل دکمه های رادیویی قدیمی!
مثال عملی : در کد مثال عملی زیر، یک فرم با 3 دکمه رادیویی Radio Button ایجاد کرده ایم، که آیتم آخر آن غیر فعال یا disabled بوده و کاربر نمی تواند بر روی آن کلیک نماید :
<div class="form-check">
<label class="form-check-label">
<input type="radio" class="form-check-input" name="optradio">Option 1
</label>
</div>
<div class="form-check">
<label class="form-check-label">
<input type="radio" class="form-check-input" name="optradio">Option 2
</label>
</div>
<div class="form-check disabled">
<label class="form-check-label">
<input type="radio" class="form-check-input" name="optradio" disabled 3
</label>
</div>
همچنین در صورتی که می خواهید دکمه های رادیویی مثال فوق، درون یک خط و به صورت inline نمایش داده شوند (نه بر روی هم)، کافی است کلاس تگ div اصلی فرم را به form-check-inline تغییر دهید :
<div class="form-check-inline">
<label class="form-check-label">
<input type="radio" class="form-check-input" name="optradio">Option 1
</label>
</div>
<div class="form-check-inline">
<label class="form-check-label">
<input type="radio" class="form-check-input" name="optradio">Option 2
</label>
</div>
<div class="form-check-inline disabled">
<label class="form-check-label">
<input type="radio" class="form-check-input" name="optradio" disabled 3
</label>
</div>
کنترل کادر کشویی کرکره ای یا Select List در مواقعی کاربرد دارد که می خواهید کاربر از بین چندین گزینه، انتخاب نماید. این کنترل دو حالت دارد :
انتخاب یک گزینه از چند مورد یا انتخاب یک یا چندین گزینه از موارد که در مثال عملی نشان خواهیم داد.
مثال 1: در کد مثال زیر، یک کنترل کشویی ایجاد کرده ایم که کاربر فقط می تواند یکی از موارد موجود در لیست را انتخاب نماید :
<div class="form-group">Select list (select one): <select name="sellist1"><option>1</option><option>2</option><option>3</option><option>4</option> </select></div>
مثال 2: در مثال دوم، با اضافه کردن کلمه کلیدی multiple به کنترل Select، منو به صورت باز شده نمایش داده می شود و کاربر می تواند یک یا چنیدن آیتم را انتخاب کند :
<div class="form-group">
<label for="sel2">Mutiple select list (hold shift to select more than one):</label>
<select multiple="" class="form-control" id="sel2" name="sellist2">
<option>1</option>
<option>2</option>
<option>3</option>
<option>4</option>
<option>5</option>
</select>
</div>
بوت استرپ 4، در حالت پیش فرض کنترل های فرم را در اندازه معمول نشان می دهد اما می توانید با به کار بردن کلاس های form-control-rm، اندازه کنترل را کوچک کرده و با کاربرد کلاس form-control-lg، آن ها را در سایز بزرگ نمایش دهید :
مثال : در کد مثال عملی زیر، کنترل اول با سایز کوچک، کنترل دوم سایز معمول بوت استرپ و کنترل سوم با سایز بزرگ نشان داده شده است :
<input type="text" class="form-control form-control-sm">
<input type="text" class="form-control form-control">
<input type="text" class="form-control form-control-lg">
می توانید با استفاده از کلاس form-control-plantext، کنترل مورد نظر را مثل یک فیلد متنی ساده نمایش دهید، همانند کد مثال عملی زیر :
<input type="text" class="form-control-plaintext">
دو نوع کنترل دیگر در بوت استرپ 4 را می توانیم استایل دهی کنیم.
اولی کنترل Range است که معمولا برای انتخاب یک عدد در بازه تعیین شده (مثلا 0 تا 100) استفاده می شود. برای ساخت این کنترل بایستی کلاس form-control-range را به المنت input-type=”range” اضافه کنید.
کنترل دوم، کنترل آپلود فایل است که از آن برای ارسال فایل به سرور استفاده می شود. برای ساخت این کنترل نیز بایستی کلاس form-control-file را به المنت input type=”file” اضافه کنید.
بووت استرپ 4، این کنترل ها را در حالت تمام عرض (full width) نمایش می دهد، همانند کد مثال زیر :
مثال 11
<p>Bootstrap Example</p>
<div class="container">
<h2>Form Control Range and File</h2>
<p>Add the .form-control-range class to input type"range" or .form-control-file to input type"file" to style a range control or a file field with full-width:</p>
<div class="form-group"><input name="range" type="range"></div>
<div class="form-group"><input name="file" type="file"></div>
Submit
</div>
آموزش طراحی سایت ادامه دارد