ภาพรวม
ส่วนประกอบและตัวเลือกสำหรับการจัดวางโปรเจ็กต์ Bootstrap ของคุณ รวมทั้งการห่อคอนเทนเนอร์ ระบบกริดอันทรงพลัง ออบเจ็กต์สื่อที่ยืดหยุ่น และคลาสยูทิลิตี้ที่ตอบสนอง
ตู้คอนเทนเนอร์
คอนเทนเนอร์เป็นองค์ประกอบเลย์เอาต์พื้นฐานที่สุดใน Bootstrap และจำเป็นเมื่อใช้ระบบกริดเริ่มต้นของเรา คอนเทนเนอร์ใช้เพื่อบรรจุ รอง และ (บางครั้ง) จัดกึ่งกลางเนื้อหาภายในคอนเทนเนอร์ แม้ว่าคอนเทนเนอร์จะซ้อนกันได้ แต่เลย์เอาต์ส่วนใหญ่ไม่ต้องการคอนเทนเนอร์ที่ซ้อนกัน
Bootstrap มาพร้อมกับคอนเทนเนอร์สามแบบ:
.container
ซึ่งตั้งค่า amax-width
ที่จุดพักตอบสนองแต่ละจุด.container-fluid
ซึ่งเป็นwidth: 100%
จุดพักทั้งหมด.container-{breakpoint}
ซึ่งwidth: 100%
จนถึงจุดพักที่กำหนด
ตารางด้านล่างแสดงให้เห็นว่าคอนเทนเนอร์แต่ละคอนเทนเนอร์max-width
เปรียบเทียบกับของจริง อย่างไร .container
และ.container-fluid
ในแต่ละเบรกพอยต์
ดูการใช้งานจริงและเปรียบเทียบในตัวอย่างกริดของ เรา
เล็กพิเศษ <576px |
เล็ก ≥576px |
กลาง ≥768px |
ใหญ่ ≥992px |
ขนาดใหญ่พิเศษ ≥1200px |
|
---|---|---|---|---|---|
.container |
100% | 540px | 720px | 960px | 1140px |
.container-sm |
100% | 540px | 720px | 960px | 1140px |
.container-md |
100% | 100% | 720px | 960px | 1140px |
.container-lg |
100% | 100% | 100% | 960px | 1140px |
.container-xl |
100% | 100% | 100% | 100% | 1140px |
.container-fluid |
100% | 100% | 100% | 100% | 100% |
ทั้งหมดในอย่างเดียว
คลาส เริ่มต้นของเรา.container
คือคอนเทนเนอร์แบบตอบสนองและมีความกว้างคงที่ ซึ่งหมายถึงการmax-width
เปลี่ยนแปลงที่จุดพักแต่ละจุด
<div class="container">
<!-- Content here -->
</div>
ของเหลว
ใช้.container-fluid
สำหรับคอนเทนเนอร์เต็มความกว้าง ขยายความกว้างทั้งหมดของวิวพอร์ต
<div class="container-fluid">
...
</div>
ตอบสนอง
คอนเทนเนอร์ที่ตอบสนองเป็นสิ่งใหม่ใน Bootstrap v4.4 อนุญาตให้คุณระบุคลาสที่มีความกว้าง 100% จนกว่าจะถึงเบรกพอยต์ที่ระบุ หลังจากนั้นเราจะใช้max-width
s กับเบรกพอยต์ที่สูงกว่าแต่ละจุด ตัวอย่างเช่น.container-sm
มีความกว้าง 100% เพื่อเริ่มต้นจนกว่าจะถึงsm
จุดเบรกพอยต์ ซึ่งจะขยายขนาดด้วย, md
, lg
และxl
<div class="container-sm">100% wide until small breakpoint</div>
<div class="container-md">100% wide until medium breakpoint</div>
<div class="container-lg">100% wide until large breakpoint</div>
<div class="container-xl">100% wide until extra large breakpoint</div>
เบรกพอยต์ที่ตอบสนอง
เนื่องจาก Bootstrap ได้รับการพัฒนาให้เป็นมือถือก่อน เราจึงใช้การสืบค้นสื่อ จำนวนหนึ่ง เพื่อสร้างจุดสั่งหยุดที่สมเหตุสมผลสำหรับเลย์เอาต์และอินเทอร์เฟซของเรา เบรกพอยต์เหล่านี้ส่วนใหญ่อิงตามความกว้างของวิวพอร์ตขั้นต่ำ และทำให้เราสามารถขยายขนาดองค์ประกอบเมื่อวิวพอร์ตเปลี่ยนไป
Bootstrap ใช้ช่วงการสืบค้นสื่อหรือเบรกพอยต์ต่อไปนี้เป็นหลักในไฟล์ Sass ต้นทางของเราสำหรับเลย์เอาต์ ระบบกริด และส่วนประกอบของเรา
// Extra small devices (portrait phones, less than 576px)
// No media query for `xs` since this is the default in Bootstrap
// Small devices (landscape phones, 576px and up)
@media (min-width: 576px) { ... }
// Medium devices (tablets, 768px and up)
@media (min-width: 768px) { ... }
// Large devices (desktops, 992px and up)
@media (min-width: 992px) { ... }
// Extra large devices (large desktops, 1200px and up)
@media (min-width: 1200px) { ... }
เนื่องจากเราเขียนซอร์สโค้ด CSS ใน Sass การสืบค้นสื่อทั้งหมดของเราจึงพร้อมใช้งานผ่าน Sass mixins:
// No media query necessary for xs breakpoint as it's effectively `@media (min-width: 0) { ... }`
@include media-breakpoint-up(sm) { ... }
@include media-breakpoint-up(md) { ... }
@include media-breakpoint-up(lg) { ... }
@include media-breakpoint-up(xl) { ... }
// Example: Hide starting at `min-width: 0`, and then show at the `sm` breakpoint
.custom-class {
display: none;
}
@include media-breakpoint-up(sm) {
.custom-class {
display: block;
}
}
บางครั้งเราใช้การสืบค้นสื่อที่ไปในทิศทางอื่น (ขนาดหน้าจอที่กำหนดหรือเล็กกว่า ):
// Extra small devices (portrait phones, less than 576px)
@media (max-width: 575.98px) { ... }
// Small devices (landscape phones, less than 768px)
@media (max-width: 767.98px) { ... }
// Medium devices (tablets, less than 992px)
@media (max-width: 991.98px) { ... }
// Large devices (desktops, less than 1200px)
@media (max-width: 1199.98px) { ... }
// Extra large devices (large desktops)
// No media query since the extra-large breakpoint has no upper bound on its width
min-
และmax-
คำนำหน้าและวิวพอร์ตที่มีความกว้างแบบเศษส่วน (ซึ่งสามารถเกิดขึ้นได้ภายใต้เงื่อนไขบางประการในอุปกรณ์ที่มีความละเอียดสูง เป็นต้น) โดยใช้ค่าที่มีความแม่นยำสูงกว่าสำหรับการเปรียบเทียบเหล่านี้ .
อีกครั้ง แบบสอบถามสื่อเหล่านี้ยังมีให้ผ่านมิกซ์อิน Sass:
@include media-breakpoint-down(xs) { ... }
@include media-breakpoint-down(sm) { ... }
@include media-breakpoint-down(md) { ... }
@include media-breakpoint-down(lg) { ... }
// No media query necessary for xl breakpoint as it has no upper bound on its width
// Example: Style from medium breakpoint and down
@include media-breakpoint-down(md) {
.custom-class {
display: block;
}
}
นอกจากนี้ยังมีคิวรีสื่อและมิกซ์อินสำหรับการกำหนดเป้าหมายกลุ่มขนาดหน้าจอเดียวโดยใช้ความกว้างของเบรกพอยต์ต่ำสุดและสูงสุด
// Extra small devices (portrait phones, less than 576px)
@media (max-width: 575.98px) { ... }
// Small devices (landscape phones, 576px and up)
@media (min-width: 576px) and (max-width: 767.98px) { ... }
// Medium devices (tablets, 768px and up)
@media (min-width: 768px) and (max-width: 991.98px) { ... }
// Large devices (desktops, 992px and up)
@media (min-width: 992px) and (max-width: 1199.98px) { ... }
// Extra large devices (large desktops, 1200px and up)
@media (min-width: 1200px) { ... }
แบบสอบถามสื่อเหล่านี้ยังมีให้ผ่านทางมิกซ์อิน Sass:
@include media-breakpoint-only(xs) { ... }
@include media-breakpoint-only(sm) { ... }
@include media-breakpoint-only(md) { ... }
@include media-breakpoint-only(lg) { ... }
@include media-breakpoint-only(xl) { ... }
ในทำนองเดียวกัน คิวรีสื่ออาจขยายความกว้างของเบรกพอยต์ได้หลายแบบ:
// Example
// Apply styles starting from medium devices and up to extra large devices
@media (min-width: 768px) and (max-width: 1199.98px) { ... }
มิกซ์อิน Sass สำหรับการกำหนดเป้าหมายช่วงขนาดหน้าจอเดียวกันจะเป็น:
@include media-breakpoint-between(md, xl) { ... }
ดัชนี Z
คอมโพเนนต์ Bootstrap หลายตัวใช้z-index
คุณสมบัติ CSS ที่ช่วยควบคุมเลย์เอาต์โดยจัดเตรียมแกนที่สามเพื่อจัดเรียงเนื้อหา เราใช้มาตราส่วนดัชนี z เริ่มต้นใน Bootstrap ที่ได้รับการออกแบบมาเพื่อเลเยอร์การนำทาง คำแนะนำเครื่องมือและป๊อปโอเวอร์ โมดอล และอื่นๆ อย่างเหมาะสม
ค่าที่สูงกว่าเหล่านี้เริ่มต้นที่ตัวเลขโดยพลการ สูงและเฉพาะเจาะจงมากพอที่จะหลีกเลี่ยงความขัดแย้งในอุดมคติ เราต้องการชุดมาตรฐานของสิ่งเหล่านี้ในองค์ประกอบที่เป็นเลเยอร์ของเรา ไม่ว่าจะเป็นคำแนะนำเครื่องมือ ป๊อปโอเวอร์ แถบนำทาง ดรอปดาวน์ โมดอล ดังนั้นเราจึงสามารถแสดงพฤติกรรมที่สอดคล้องกันได้อย่างเหมาะสม ไม่มีเหตุผลใดที่เราจะใช้100
+ หรือ500
+ ไม่ได้
เราไม่สนับสนุนการปรับแต่งค่าส่วนบุคคลเหล่านี้ หากคุณเปลี่ยนอย่างใดอย่างหนึ่ง คุณอาจต้องเปลี่ยนทั้งหมด
$zindex-dropdown: 1000 !default;
$zindex-sticky: 1020 !default;
$zindex-fixed: 1030 !default;
$zindex-modal-backdrop: 1040 !default;
$zindex-modal: 1050 !default;
$zindex-popover: 1060 !default;
$zindex-tooltip: 1070 !default;
ในการจัดการกับเส้นขอบที่ทับซ้อนกันภายในส่วนประกอบต่างๆ (เช่น ปุ่มและอินพุตในกลุ่มอินพุต) เราใช้z-index
ค่าตัวเลขหลักเดียวต่ำของ1
, 2
และ3
สำหรับสถานะเริ่มต้น โฮเวอร์ และสถานะที่ใช้งานอยู่ เมื่อวางเมาส์เหนือ/โฟกัส/แอ็คทีฟ เรานำองค์ประกอบเฉพาะมาไว้แถวหน้าด้วยz-index
ค่าที่สูงกว่าเพื่อแสดงเส้นขอบขององค์ประกอบที่อยู่เหนือองค์ประกอบระดับเดียวกัน