ตอนที่5 : สอนใช้งานComponentsในBootstrap4เบื้องต้น (Part1)
สวัสดีครับกลับมาพบกันอีกครั้งนะครับหลังจากที่เราได้เรียนรู้เรื่องการใช้ระบบGridในBootstrap4กันไปพอสมควรนะครับ วันนี้ผมก็จะมาแนะนำการใช้พวกส่วนประกอบต่างๆบนหน้าเว็บที่ในBootstap4มีให้ใช้กันนะครับ ซึ่งนั่นก็คือส่วนComponentsนั่นเอง ไปเริ่มกันเลยดีกว่าาาา
ส่วนใหญ่แล้วหากเราต้องการใช้ส่วนไหนนั้นเราก็สามารถไปcopy and paste โค้ดนั้นมาใช้ได้เลยครับ และถ้าหากต้องการปรับสีหรือขนาดเพิ่มเติมก็สามารถเข้าไปแก้ไขได้ในclassของobjectนั้นๆได้เลยครับ
✎ Navbar
เวลาที่เราเขียนNavbarเราจะเขียนทั้งหมดไว้ในแท็ก<nav> </nav> และจะต้องมีclass .navbar กับ .navbar-toggleable-* ด้วยเพื่อจะได้มีความเป็น Responsiveเวลาหดขนาดจอนั่นเองครับ
Navbarของเราสามารถกำหนดตำแหน่งได้นะครับ
- อยู่บนสุดของจอไม่ว่าเราจะเลื่อนลงไปไหนก็ตาม มันก็จะตามเราไปด้วย จะใช้class fixed-top ใส่ไว้ในแท็ก<nav> </nav>
- อยู่ล่างสุดของจอไม่ว่าเราจะเลื่อนขึ้นหรือลง จะใช้class fixed-bottom ใส่ไว้ในแท็ก<nav> </nav> มันก็จะตามหลอกหลอนอยู่ข้างล่างจอของเราตลอดเลยครับ อิอิ
- อยู่ตำแหน่งด้านบนของเว็บตลอดกาล(แบบไม่ตามหลอกหลอนเราตลอดเวลานะ) จะใช้class sticky-top ใส่ไว้ในแท็ก<nav> </nav>
ในNavbarของเราสามารถใส่brandโลโก้ของเว็บเราได้นะ ไม่ว่าจะใส่เป็นรูปภาพหรือเป็นตัวอักษรก็ได้ครับ ดังภาพข้างล่างนี้
<nav class="navbar navbar-light bg-faded">
<h1 class="navbar-brand mb-0">Navbar</h1>
</nav>
<nav class="navbar navbar-light bg-faded">
<a class="navbar-brand" href="#">
<img src="******" width="30" height="30" alt="">
</a>
</nav>
ตรง******ให้ใส่pathของรูปภาพที่เราจะใส่นะครับ
และการใส่ปุ่มเมนูต่างๆในNavbarของเรานั้นจะใช้class nav-link กับ nav-item ในลักษณะคล้ายกับโค้ดตัวอย่างด้านล่างเลยครับ
<nav class="navbar navbar-toggleable-md navbar-light bg-faded">
<button class="navbar-toggler navbar-toggler-right" type="button" data-toggle="collapse" data-target="#navbarNav" aria-controls="navbarNav" aria-expanded="false" aria-label="Toggle navigation">
<span class="navbar-toggler-icon"></span>
</button>
<a class="navbar-brand" href="#">Navbar</a>
<div class="collapse navbar-collapse" id="navbarNav">
<ul class="navbar-nav">
<li class="nav-item active">
<a class="nav-link" href="#">Home</a>
</li>
<li class="nav-item">
<a class="nav-link" href="#">Features</a>
</li>
<li class="nav-item">
<a class="nav-link" href="#">Pricing</a>
</li>
</ul>
</div>
</nav>
นอกจากนั้นยังสามารถใส่กล่องข้อความที่เอาไว้สำหรับกรอกข้อมูลต่างๆได้เช่นพวกช่องsearchอะไรพวกนี้ ดังโค้ดข้างล่างครับ
<nav class="navbar navbar-light bg-faded">
<form class="form-inline">
<input class="form-control mr-sm-2" type="text" placeholder="Search">
<button class="btn btn-outline-success my-2 my-sm-0" type="submit">Search</button>
</form>
</nav>
และที่น่าสนใจก็คือBootstrap4ได้เตรียมclassสำหรับสีbackgroundของNavbarไว้ให้ด้วยนะ มีอยู่2สี
- สีดำ จะใช้class navbar-inverse กับ bg-inverse ใส่ในแท็ก<nav> </nav>เลยครับ
- สีน้ำเงิน จะใช้class navbar-inverse กับ bg-primary ใส่ในแท็ก<nav> </nav>เช่นกันครับ
แต่ถ้าหากอยากใช้สีอื่นก็สามารถไปใส่ style = “background-color: *****;” ในแท็ก<nav> </nav>เลยครับ (*****ให้ใส่โค้ดสีที่เราต้องการครับ)
✎ button
โดยปุ่มก็มีการปรับรูปแบบและขนาดที่ต่างกันไป เรามารับชมกันเลยดีกว่าว่ามีปุ่มรูปแบบไหนบ้างนะครับ
Button tags
class btn เนี่ยถูกออกแบบมาให้ใช้กับ <button> อย่างไรก็ตามสามารถใช้คลาสเหล่านี้ใน <a> หรือ <input> ได้ด้วยนะครับ แต่ในเบราว์เซอร์บางตัวก็อาจจะมีการแสดงผลที่แตกต่างกันเล็กน้อยครับ
อ๋อ อย่าลืมไปล่ะ * เมื่อเราใช้class button ที่ใช้เรียกใช้ฟังก์ชันในหน้าเว็บ ลิงก์เหล่านี้ควรให้ role="button" ด้วยนะครับ
ส่วนตัวอย่างรูปแบบของ button tags และ code ดูได้จากตัวอย่างด้านล่างนี้เลยครับ
Outline buttons
เป็นลักษณะของปุ่มที่ไม่มีภาพพื้นหลังมีแต่เส้นกรอบนะครับ จำเป็นต้องมี button แต่ไม่ต้องนำสีพื้นหลังมา ให้แทนที่classด้วย btn-outline-* เพื่อลบภาพพื้นหลังและสีปุ่มนะครับ
ส่วนตัวอย่างรูปแบบของ outline buttonsและ code ดูได้จากตัวอย่างด้านล่างนี้เลยครับ
sizes
ถ้าเราต้องการปุ่มขนาดใหญ่ให้เราเพิ่มclass btn-lg เข้าไปนะครับ ส่วนปุ่มขนาดเล็กเนี่ยก็เพิ่มclass btn-sm แทนนะครับ
นี่คือตัวอย่างของปุ่มขนาดเล็กและ code นะครับ
ส่วนนี่คือตัวอย่างของปุ่มขนาดใหญ่ และ code นะครับ
ถ้าเราอยากให้ปุ่มขยายเต็มความกว้างก็สามารถทำได้นะครับด้วยการเพิ่มclass btn-block เข้าไปนั่นเอง
ส่วนตัวอย่างรูปแบบ และ code ดูได้จากตัวอย่างด้านล่างนี้เลยครับ
Active state
เป็นการบ่งบอกว่าปุ่มนี้กำลังได้รับการตอบสนองเรียกใช้งานอยู่ในปัจจุบันครับ โดยการทำให้เป็น active เราไม่จำเป็นต้องเพิ่มคลาสให้กับ <button> เนื่องจากใช้ pseudo-class โดยใช้ . active แทนครับ
ส่วนตัวอย่างรูปแบบ active state และ code ดูได้จากตัวอย่างด้านล่างนี้เลยครับ
<a href="#" class="btn btn-primary btn-lg active" role="button" aria-pressed="true">Primary link</a><a href="#" class="btn btn-secondary btn-lg active" role="button" aria-pressed="true">Link</a>
disabled state
เป็นการทำให้ปุ่มเป็นปุ่มที่ไม่สามารถกดได้ โดยเพิ่ม disabled boolean attribute ไปยัง <button> นะครับ
ส่วน disabled button ที่ใช้ <a> ก็มีองค์ประกอบต่างกันเล็กน้อยนะครับ
- <a> ไม่สนับสนุน disabled attribute ดังนั้นจึงต้องเพิ่มclass disabled
- Disabled buttons ควรมีattribute aria-disabled=”true”เพื่อระบุสถานะ
ส่วนตัวอย่างรูปแบบ และ code ดูได้จากตัวอย่างด้านล่างนี้เลยครับ
<a href="#" class="btn btn-primary btn-lg disabled" role="button" aria-disabled="true">Primary link</a><a href="#" class="btn btn-secondary btn-lg disabled" role="button" aria-disabled="true">Link</a>
Checkbox and radio buttons
เราสามารถใช้class btn ของ Bootstrap กับส่วนอื่น ๆ เช่น <label> เพื่อให้สามารถเลือกปุ่ม checkbox หรือ radio สลับกันได้นั่นเองครับ โดยเพิ่ม data-toggle=”buttons” ไปยัง. btn-group เพื่อให้สามารถเลือกรูปแบบ และ สลับรูปแบบได้ครับ
ส่วนตัวอย่างรูปแบบ และ code ดูได้จากตัวอย่างด้านล่างนี้เลยครับ
<div class="btn-group" data-toggle="buttons">
<label class="btn btn-primary active">
<input type="radio" name="options" id="option1" autocomplete="off" checked> Radio 1 (preselected)
</label>
<label class="btn btn-primary">
<input type="radio" name="options" id="option2" autocomplete="off"> Radio 2
</label>
<label class="btn btn-primary">
<input type="radio" name="options" id="option3" autocomplete="off"> Radio 3
</label>
</div>
✎ ปุ่มเมนู Dropdowns
ปุ่มเมนูDropdownsจะใส่class dropdownไว้ในแท็ก<div>ที่ครอบทั้งหมดไว้ และส่วนที่เป็นปุ่มก็จะใส่ครอบไว้ในแท็ก<button> </button> ส่วนที่เป็นเมนูที่ดรอปลงมาทั้งหมดนั้นจะใส่ครอบไว้ในแท็ก<div>ที่มีclass dropdown-menuอยู่ และเมนูที่อยู่ในดรอปแต่ละตัวจะใช้class dropdown-item ดังตัวอย่างต่อไปนี้ครับ
<div class="dropdown"><button class="btn btn-secondary dropdown-toggle" type="button" id="*****" data-toggle="dropdown" aria-haspopup="true" aria-expanded="false">Dropdown button</button><div class="dropdown-menu" aria-labelledby="*****"><a class="dropdown-item" href="#">Action</a><a class="dropdown-item" href="#">Another action</a><a class="dropdown-item" href="#">Something else here</a></div></div>
ตรงที่เป็น*****ต้องชื่อเหมือนกันทั้ง2ที่นะครับ
หรือจะใช้เป็นdropupก็ได้ครับ ก็เพียงแค่เปลี่ยนจากclass dropdownเป็นdropup
✎ Breadcrumb
Breadcrumbเป็นปุ่มที่มีไว้บอกตำแหน่งหน้าปัจจุบันที่เราอยู่ครับ จะแสดงในลักษณะเหมือนเป็นลำดับขั้นของpathมายังหน้าที่เราอยู่ปัจจุบัน ซึ่งทำให้เราสามารถกดลิงค์ไปที่หน้าก่อนหน้านี้ทั้งหมดได้ดังภาพข้างล่างครับ
จากภาพตัวอย่างนั้นแสดงว่าเราอยู่หน้าที่ชื่อว่าData แต่ก่อนหน้าหน้าDataคือหน้าLibraryและหน้าHomeตามลำดับนั่นเองครับ
ในการเขียนโค้ดของBreadcrumbนั้นจะเขียนทั้งหมดอยู่ในแท็ก<ol> </ol>เนื่องจากข้อมูลข้างในมีความเป็นลำดับครับ และจะใช้class breadcrumbอยู่ข้างใน ส่วนลิสหน้าแต่ละหน้านั้นจะใช้class breadcrumb-item และที่หน้าไหนเป็นหน้าปัจจุบันที่เราอยู่ให้ใส่class activeเข้าไปด้วยครับ ดังตัวอย่างโค้ดต่อไปนี้ซึ่งเป็นโค้ดของภาพBreadcrumbข้างบนครับ
<ol class="breadcrumb"><li class="breadcrumb-item"><a href="#">Home</a></li><li class="breadcrumb-item"><a href="#">Library</a></li><li class="breadcrumb-item active">Data</li></ol>
วันนี้ผมขอกลับไปพักก่อนนะครับ คิดว่าตอนนี้น่าจะยาวไปละ อิอิ ขอแบ่งเป็น 2 Partดีกว่า แล้วกลับมาเจอกันใหม่ในPartต่อไปพร้อมกับComponentsส่วนที่เหลือที่น่าสนใจนะครับ ~~
References : https://v4-alpha.getbootstrap.com/