กำลังย้ายไปยัง v4
Bootstrap 4 เป็นการเขียนใหม่ครั้งใหญ่ของโครงการทั้งหมด การเปลี่ยนแปลงที่โดดเด่นที่สุดได้สรุปไว้ด้านล่าง ตามด้วยการเปลี่ยนแปลงที่เฉพาะเจาะจงมากขึ้นในส่วนประกอบที่เกี่ยวข้อง
การเปลี่ยนแปลงที่มั่นคง
การย้ายจากเบต้า 3 ไปเป็นเวอร์ชัน v4.x ที่เสถียรของเรา ไม่มีการเปลี่ยนแปลงที่แตกหัก แต่มีการเปลี่ยนแปลงที่โดดเด่นบางประการ
การพิมพ์
-
แก้ไขยูทิลิตี้การพิมพ์ที่ใช้งานไม่ได้ ก่อนหน้านี้ การใช้ ชั้นเรียนจะมีผลเหนือ ชั้นเรียน
.d-print-*
อื่นโดยไม่คาดคิด.d-*
ตอนนี้มันตรงกับยูทิลิตี้การแสดงผลอื่นๆ ของเราและใช้กับสื่อนั้นเท่านั้น (@media print
) -
ขยายยูทิลิตีการแสดงผลการพิมพ์ที่พร้อมใช้งานเพื่อให้ตรงกับยูทิลิตีอื่นๆ เบต้า 3 และเก่ากว่ามีเพียง
block
,inline-block
, ,inline
และnone
เพิ่มความเสถียร v4flex
,inline-flex
,table
, ,table-row
และtable-cell
-
แก้ไขการแสดงตัวอย่างก่อนพิมพ์ในเบราว์เซอร์ด้วยรูปแบบการพิมพ์ใหม่ที่
@page
size
ระบุ
การเปลี่ยนแปลงเบต้า 3
แม้ว่าเบต้า 2 จะเห็นการเปลี่ยนแปลงจำนวนมากของเราในช่วงเบต้า แต่เรายังมีบางสิ่งที่จำเป็นต้องแก้ไขในรุ่นเบต้า 3 การเปลี่ยนแปลงเหล่านี้จะมีผลหากคุณกำลังอัปเดตเป็นเบต้า 3 จากเบต้า 2 หรือ Bootstrap เวอร์ชันเก่ากว่า
เบ็ดเตล็ด
- ลบ
$thumbnail-transition
ตัวแปร ที่ไม่ได้ใช้ เราไม่ได้ทำการเปลี่ยนแปลงใดๆ ดังนั้นจึงเป็นเพียงโค้ดเพิ่มเติม - แพ็คเกจ npm ไม่รวมไฟล์อื่นใดนอกจากไฟล์ต้นทางและไฟล์ dist ของเราอีกต่อไป หากคุณพึ่งพาพวกเขาและเรียกใช้สคริปต์ของเราผ่าน
node_modules
โฟลเดอร์ คุณควรปรับเวิร์กโฟลว์ของคุณ
แบบฟอร์ม
-
เขียนใหม่ทั้งช่องทำเครื่องหมายและวิทยุที่กำหนดเองและเริ่มต้น ตอนนี้ ทั้งสองมีโครงสร้าง HTML ที่ตรงกัน (ด้านนอก
<div>
พร้อม brother<input>
และ<label>
) และรูปแบบเลย์เอาต์เดียวกัน (ค่าเริ่มต้นแบบสแต็ก สอดคล้องกับคลาสตัวแก้ไข) ซึ่งช่วยให้เราจัดรูปแบบป้ายกำกับตามสถานะของอินพุต ทำให้การรองรับdisabled
แอตทริบิวต์ง่ายขึ้น (ก่อนหน้านี้ต้องใช้คลาสพาเรนต์) และรองรับการตรวจสอบแบบฟอร์มของเราได้ดียิ่งขึ้นในส่วนนี้ เราได้เปลี่ยน CSS สำหรับการจัดการหลายรายการ
background-image
ในช่องกาเครื่องหมายและวิทยุของแบบฟอร์มที่กำหนดเอง ก่อนหน้านี้.custom-control-indicator
องค์ประกอบที่นำออกแล้วจะมีสีพื้นหลัง การไล่ระดับสี และไอคอน SVG การปรับแต่งการไล่ระดับสีพื้นหลังหมายถึงการแทนที่ทุกครั้งที่คุณต้องการเปลี่ยนเพียงครั้งเดียว ตอนนี้ เรามี.custom-control-label::before
สำหรับการเติมและการไล่ระดับสีและ.custom-control-label::after
จัดการไอคอนหากต้องการสร้างการเช็คอินแบบอินไลน์ที่กำหนดเอง ให้เพิ่ม
.custom-control-inline
. -
อัปเดตตัวเลือกสำหรับกลุ่มปุ่มตามอินพุต แทนที่จะใช้
[data-toggle="buttons"] { }
สำหรับสไตล์และพฤติกรรม เราใช้data
แอตทริบิวต์สำหรับพฤติกรรม JS เท่านั้นและอาศัย.btn-group-toggle
คลาสใหม่สำหรับการจัดสไตล์ -
ลบออก
.col-form-legend
เพื่อการปรับปรุง.col-form-label
เล็กน้อย ด้วยวิธีนี้.col-form-label-sm
และ.col-form-label-lg
สามารถใช���กับ<legend>
องค์ประกอบต่างๆ ได้อย่างง่ายดาย -
อินพุตไฟล์ที่กำหนดเองได้รับการเปลี่ยนแปลงใน
$custom-file-text
ตัวแปร Sass มันไม่ใช่แผนที่ Sass ที่ซ้อนกันอีกต่อไป และตอนนี้ให้พลังเพียงสตริงเดียวเท่านั้น—Browse
ปุ่มดังกล่าวเป็นองค์ประกอบหลอกเพียงองค์ประกอบเดียวที่สร้างขึ้นจาก Sass ของเราChoose file
ข้อความตอนนี้มาจาก.custom-file-label
.
กลุ่มอินพุต
-
ส่วนเสริมของกลุ่มอินพุตนั้นเฉพาะเจาะจงสำหรับตำแหน่งที่สัมพันธ์กับอินพุต เราได้ลดลง
.input-group-addon
และ.input-group-btn
สำหรับสองคลาสใหม่.input-group-prepend
และ.input-group-append
. คุณต้องใช้ส่วนต่อท้ายหรือส่วนหน้าอย่างชัดเจนในตอนนี้ ซึ่งจะทำให้ CSS ของเราง่ายขึ้นมาก ภายในส่วนต่อท้ายหรือเติมหน้า ให้วางปุ่มของคุณอย่างที่ควรจะเป็นในที่อื่น แต่ตัดข้อความใน.input-group-text
. -
ขณะนี้รองรับรูปแบบการตรวจสอบความถูกต้องแล้ว เช่นเดียวกับอินพุตหลายรายการ (แม้ว่าคุณจะตรวจสอบความถูกต้องได้เพียงรายการเดียวต่อกลุ่ม)
-
คลาสการปรับขนาดต้องอยู่บนพา เรน
.input-group
ต์ ไม่ใช่องค์ประกอบของฟอร์มแต่ละรายการ
การเปลี่ยนแปลงเบต้า 2
ในขณะที่อยู่ในช่วงเบต้า เราตั้งเป้าที่จะไม่มีการเปลี่ยนแปลงที่แตกหัก อย่างไรก็ตาม สิ่งต่างๆ ไม่ได้เป็นไปตามแผนที่วางไว้เสมอไป ด้านล่างนี้คือการเปลี่ยนแปลงที่ต้องระวังเมื่อเปลี่ยนจากเบต้า 1 เป็นเบต้า 2
ทำลาย
- ลบ
$badge-color
ตัวแปรและการใช้งานบน.badge
. เราใช้ฟังก์ชันคอนทราสต์ของสีเพื่อเลือก acolor
โดยยึดตามbackground-color
ดังนั้นตัวแปรจึงไม่จำเป็น - เปลี่ยนชื่อ
grayscale()
ฟังก์ชันเพื่อgray()
หลีกเลี่ยงการทำลายความขัดแย้งกับgrayscale
ตัวกรองเนทีฟ CSS - เปลี่ยนชื่อ
.table-inverse
,.thead-inverse
, และ.thead-default
เป็น.*-dark
และ.*-light
จับคู่ชุดสีของเราที่ใช้ในที่อื่น - ขณะนี้ตารางตอบสนองสร้างคลาสสำหรับเบรกพอยต์แต่ละกริด สิ่งนี้แตกจากเบต้า 1 ที่
.table-responsive
คุณใช้อยู่เป็นเหมือน.table-responsive-md
. ตอนนี้คุณสามารถใช้.table-responsive
หรือ.table-responsive-{sm,md,lg,xl}
ตามความจำเป็น - การสนับสนุน Dropped Bower เนื่องจากตัวจัดการแพ็คเกจถูกเลิกใช้สำหรับทางเลือกอื่น (เช่น Yarn หรือ npm) ดู bower/bower#2298สำหรับรายละเอียด
- Bootstrap ยังคงต้องการ jQuery 1.9.1 หรือสูงกว่า แต่คุณควรใช้เวอร์ชัน 3.x เนื่องจากเบราว์เซอร์ที่สนับสนุนของ v3.x คือ Bootstrap รองรับและ v3.x มีการแก้ไขด้านความปลอดภัยบางอย่าง
- ลบ
.form-control-label
คลาส ที่ไม่ได้ใช้ หากคุณใช้ประโยชน์จากคลาสนี้ คลาสนี้จะซ้ำกับ.col-form-label
คลาสที่จัดกึ่งกลาง a ในแนวตั้ง<label>
ด้วยอินพุตที่เกี่ยวข้องในเลย์เอาต์ของฟอร์มแนวนอน - เปลี่ยน
color-yiq
จากมิกซ์อินที่รวมcolor
คุณสมบัติเป็นฟังก์ชันที่คืนค่า ช่วยให้คุณใช้สำหรับคุณสมบัติ CSS ใดก็ได้ ตัวอย่างเช่น แทนที่จะcolor-yiq(#000)
เขียนcolor: color-yiq(#000);
.
ไฮไลท์
- แนะนำ
pointer-events
การใช้งานใหม่เกี่ยวกับโมดอล ตัวนอก.modal-dialog
ผ่านเหตุการณ์ด้วยpointer-events: none
สำหรับการจัดการคลิกแบบกำหนดเอง (ทำให้สามารถฟังการ.modal-backdrop
คลิกใดๆ ก็ได้) แล้วตอบโต้กับเหตุการณ์ที่เกิดขึ้นจริง.modal-content
ด้วยpointer-events: auto
.
สรุป
ต่อไปนี้คือรายการตั๋วขนาดใหญ่ที่คุณต้องระวังเมื่อเปลี่ยนจาก v3 เป็น v4
รองรับเบราว์เซอร์
- หยุดการสนับสนุน IE8, IE9 และ iOS 6 v4 ตอนนี้เป็นเพียง IE10+ และ iOS 7+ สำหรับไซต์ที่ต้องการอย่างใดอย่างหนึ่ง ให้ใช้ v3.
- เพิ่มการสนับสนุนอย่างเป็นทางการสำหรับเบราว์เซอร์และ WebView ของ Android v5.0 Lollipop เบราว์เซอร์ Android และ WebView เวอร์ชันก่อนหน้ายังคงได้รับการสนับสนุนอย่างไม่เป็นทางการเท่านั้น
การเปลี่ยนแปลงระดับโลก
- Flexbox ถูกเปิดใช้งานโดยค่าเริ่มต้น โดยทั่วไปแล้ว นี่หมายถึงการย้ายออกจากทุ่นลอยและอื่น ๆ ข้ามส่วนประกอบของเรา
- เปลี่ยนจากLessเป็นSassสำหรับไฟล์ CSS ต้นทางของเรา
- เปลี่ยนจาก
px
เป็นrem
หน่วย CSS หลักของเราแล้ว แม้ว่าพิกเซลจะยังคงใช้สำหรับคิวรี่สื่อและพฤติกรรมกริด เนื่องจากวิวพอร์ตของอุปกรณ์ไม่ได้รับผลกระทบจากขนาดประเภท - ขนาดตัวอักษรสากลเพิ่มขึ้นจาก
14px
เป็น16px
. - ปรับปรุงระดับกริดเพื่อเพิ่มตัวเลือกที่ห้า (ระบุอุปกรณ์ขนาดเล็กที่
576px
ด้านล่างและด้านล่าง) และนำส่วน เสริมออก-xs
จากคลาสเหล่านั้น ตัวอย่าง:.col-6.col-sm-4.col-md-3
. - แทนที่ธีมทางเลือกที่แยกจากกันด้วยตัวเลือกที่กำหนดค่าได้ผ่านตัวแปร SCSS (เช่น
$enable-gradients: true
) - ปรับปรุงระบบบิลด์เพื่อใช้ชุดสคริปต์ npm แทน Grunt ดู
package.json
สคริปต์ทั้งหมดหรือโครงการ readme ของเราสำหรับความต้องการในการพัฒนาในท้องถิ่น - ไม่รองรับการใช้งาน Bootstrap แบบไม่ตอบสนองอีกต่อไป
- เลิกใช้ Customizer ออนไลน์เพื่อสนับสนุนเอกสารการตั้งค่าที่กว้างขวางยิ่งขึ้นและบิลด์ที่กำหนดเอง
- เพิ่ม คลาสยูทิลิตี้ใหม่หลายสิบรายการสำหรับคู่ค่าคุณสมบัติ CSS ทั่วไปและทางลัดระยะขอบ/ช่องว่างภายใน
ระบบกริด
- ย้ายไปที่เฟล็กซ์บ็อกซ์
- เพิ่มการรองรับ flexbox ในกริดมิกซ์อินและคลาสที่กำหนดไว้ล่วงหน้า
- เป็นส่วนหนึ่งของ flexbox รวมการรองรับคลาสการจัดตำแหน่งแนวตั้งและแนวนอน
- อัปเดตชื่อคลาสกริดและระดับกริดใหม่
- เพิ่ม
sm
ระดับกริดใหม่ด้านล่าง768px
เพื่อการควบคุมที่ละเอียดยิ่งขึ้น ตอนนี้เรามีxs
,sm
,md
,lg
, และxl
. นี่ยังหมายความว่าทุกระดับถูกเพิ่มขึ้นหนึ่งระดับ (ดังนั้น.col-md-6
ใน v3 ตอนนี้.col-lg-6
อยู่ใน v4) xs
คลาสกริดได้รับการแก้ไขเพื่อให้ไม่ต้องการ infix เพื่อแสดงว่าพวกเขาเริ่มใช้สไตล์min-width: 0
และไม่ใช่ค่าพิกเซลที่ตั้งไว้ แทนที่จะ.col-xs-6
เป็นตอน.col-6
นี้ ระดับกริดอื่น ๆ ทั้งหมดต้องมีส่วนเสริม (เช่นsm
)
- เพิ่ม
- อัปเดตขนาดกริด มิกซ์อิน และตัวแปร
- ขณะนี้รางน้ำกริดมีแผนที่ Sass เพื่อให้คุณสามารถระบุความกว้างของรางน้ำเฉพาะที่จุดพักแต่ละจุด
- อัปเดตมิกซ์อินกริดเพื่อใช้
make-col-ready
มิกซ์อินเตรียมและmake-col
เพื่อตั้งค่าflex
และmax-width
สำหรับการปรับขนาดคอลัมน์แต่ละคอลัมน์ - เปลี่ยนจุดสั่งหยุดการสืบค้นสื่อของระบบกริดและความกว้างของคอนเทนเนอร์เพื่อพิจารณาระดับกริดใหม่ และตรวจสอบให้แน่ใจว่าคอลัมน์สามารถหารด้วย
12
ความกว้างสูงสุดเท่าๆ กัน - ขณะนี้มีการจัดการเบรกพอยต์ของกริดและความกว้างของคอนเทนเนอร์ผ่านแผนที่ Sass (
$grid-breakpoints
และ$container-max-widths
) แทนที่จะใช้ตัวแปรแยกกันจำนวนหนึ่ง สิ่งเหล่านี้จะแทนที่@screen-*
ตัวแปรทั้งหมดและช่วยให้คุณปรับแต่งระดับกริดได้อย่างเต็มที่ - ข้อความค้นหาสื่อก็เปลี่ยนไปเช่นกัน แทนที่จะใช้การประกาศข้อความค้นหาสื่อของเราซ้ำๆ ด้วยค่าเดียวกันในแต่ละครั้ง ตอนนี้ เรามี
@include media-breakpoint-up/down/only
. ตอนนี้ แทนที่จะเขียน@media (min-width: @screen-sm-min) { ... }
คุณสามารถเขียน@include media-breakpoint-up(sm) { ... }
.
ส่วนประกอบ
- แผง ภาพขนาดย่อ และช่องที่ลดลงสำหรับส่วนประกอบใหม่ทั้งหมดการ์ด
- ทิ้งแบบอักษรไอคอน Glyphicons หากคุณต้องการไอคอน บางตัวเลือกมีดังนี้:
- Glyphiconsเวอร์ชันต้นน้ำ
- Octicons
- Font Awesome
- ดูหน้าขยายสำหรับรายการทางเลือก มีข้อเสนอแนะเพิ่มเติมหรือไม่? กรุณาเปิดประเด็นหรือประชาสัมพันธ์
- ทิ้งปลั๊กอิน Affix jQuery
- เราแนะนำให้ใช้
position: sticky
แทน ดูรายการ HTML5 Pleaseสำหรับรายละเอียดและคำแนะนำ polyfill ที่เฉพาะเจาะจง ข้อเสนอแนะหนึ่งคือการใช้@supports
กฎในการนำไปใช้ (เช่น@supports (position: sticky) { ... }
) - หากคุณใช้ Affix เพื่อใช้รูปแบบเพิ่มเติมที่ไม่ใช่
position
รูปแบบ Polyfills อาจไม่รองรับกรณีการใช้งานของคุณ ตัวเลือกหนึ่งสำหรับการใช้งานดังกล่าวคือไลบรารีScrollPos-Styler ของบริษัทอื่น
- เราแนะนำให้ใช้
- ลดองค์ประกอบเพจเจอร์เนื่องจากเป็นปุ่มที่ปรับแต่งเล็กน้อย
- ปรับโครงสร้างองค์ประกอบเกือบทั้งหมดใหม่เพื่อใช้ตัวเลือกคลาสที่ไม่ซ้อนกันมากกว่าตัวเลือกย่อยที่เจาะจงมากเกินไป
ตามส่วนประกอบ
รายการนี้เน้นการเปลี่ยนแปลงที่สำคัญตามองค์ประกอบระหว่าง v3.xx และ v4.0.0
รีบูต
สิ่งใหม่สำหรับ Bootstrap 4 คือRebootซึ่งเป็นสไตล์ชีตใหม่ที่สร้างบน Normalize ด้วยสไตล์การรีเซ็ตที่มีความคิดเห็นส่วนตัว ตัวเลือกที่ปรากฏในไฟล์นี้ใช้เฉพาะองค์ประกอบ ไม่มีคลาสอยู่ที่นี่ สิ่งนี้แยกรูปแบบการรีเซ็ตของเราออกจากรูปแบบส่วนประกอบของเราสำหรับวิธีการแบบแยกส่วนมากขึ้น การรีเซ็ตที่สำคัญที่สุดบางส่วนซึ่งรวมถึงการbox-sizing: border-box
เปลี่ยนแปลง การย้ายจาก องค์ประกอบหนึ่ง em
ไปยังrem
อีกหน่วยหนึ่ง สไตล์ลิงก์ และการรีเซ็ตองค์ประกอบแบบฟอร์มจำนวนมาก
วิชาการพิมพ์
- ย้าย
.text-
ยูทิลิตี้ทั้งหมดไปยัง_utilities.scss
ไฟล์ - ลดลง
.page-header
เนื่องจากสามารถใช้สไตล์ผ่านยูทิลิตี้ได้ .dl-horizontal
ได้รับการลดลง ให้ใช้.row
on<dl>
และใช้คลาสคอลัมน์กริด (หรือมิกซ์อิน) กับคลาสของคอลัมน์<dt>
และ<dd>
ย่อยแทน- บล็อกโควตที่ออกแบบใหม่ โดยย้ายสไตล์จาก
<blockquote>
องค์ประกอบเป็นคลาสเดียว.blockquote
. วางตัว.blockquote-reverse
แก้ไขสำหรับยูทิลิตี้ข้อความ .list-inline
ตอนนี้ต้องการให้รายการลูกของมันมีการ.list-inline-item
ใช้คลาสใหม่กับพวกเขา
รูปภาพ
- เปลี่ยนชื่อ
.img-responsive
เป็น.img-fluid
. - เปลี่ยนชื่อ
.img-rounded
เป็น.rounded
- เปลี่ยนชื่อ
.img-circle
เป็น.rounded-circle
โต๊ะ
- เกือบทุกอินสแตนซ์ของ
>
ตัวเลือกถูกลบออก ซึ่งหมายความว่าตารางที่ซ้อนกันจะรับสไตล์จากผู้ปกครองโดยอัตโนมัติ สิ่งนี้ช่วยลดความยุ่งยากในตัวเลือกและการปรับแต่งที่เป็นไปได้ของเราอย่างมาก - เปลี่ยนชื่อ
.table-condensed
เป็นเพื่อความ.table-sm
สอดคล้อง - เพิ่ม
.table-inverse
ตัวเลือก ใหม่ - เพิ่มตัวแก้ไขส่วนหัวของตาราง:
.thead-default
และ.thead-inverse
. - เปลี่ยนชื่อคลาสตามบริบทให้มี
.table-
-prefix ดังนั้น.active
,.success
,.warning
,.danger
และ.info
ถึง.table-active
,.table-success
,.table-warning
,.table-danger
และ.table-info
.
แบบฟอร์ม
- องค์ประกอบที่ย้ายจะรีเซ็ตเป็น
_reboot.scss
ไฟล์ - เปลี่ยนชื่อ
.control-label
เป็น.col-form-label
. - เปลี่ยนชื่อ
.input-lg
และ.input-sm
เป็น.form-control-lg
และ.form-control-sm
ตามลำดับ - เลิก
.form-group-*
เรียนเพื่อความเรียบง่าย ใช้.form-control-*
คลาสแทนตอนนี้ - ทิ้ง
.help-block
และแทนที่ด้วย.form-text
ข้อความช่วยเหลือระดับบล็อก สำหรับข้อความช่วยเหลือแบบอินไลน์และตัวเลือกที่ยืดหยุ่นอื่นๆ ให้ใช้คลาสยูทิลิตี้ เช่น.text-muted
. - หลุด
.radio-inline
และ.checkbox-inline
. - รวม
.checkbox
และ.radio
เข้า.form-check
และ.form-check-*
ชั้นเรียน ต่างๆ - ปรับปรุงรูปแบบแนวนอน:
- ยกเลิก
.form-horizontal
ข้อกำหนดของชั้นเรียน .form-group
ไม่ใช้สไตล์จาก.row
มิกซ์อินผ่านอีกต่อไป ดังนั้นจึง.row
จำเป็นสำหรับการจัดวางตารางแนวนอน (เช่น<div class="form-group row">
)- เพิ่ม
.col-form-label
คลาสใหม่ให้กับป้ายกำกับกึ่งกลางแนวตั้งด้วย.form-control
s - เพิ่มรูปแบบใหม่
.form-row
สำหรับรูปแบบกะทัดรัดด้วยคลาสกริด (สลับ.row
เป็น a.form-row
และ go)
- ยกเลิก
- เพิ่มการสนับสนุนแบบฟอร์มที่กำหนดเอง (สำหรับช่องทำเครื่องหมาย วิทยุ เลือก และอินพุตไฟล์)
- แทนที่
.has-error
,.has-warning
, และ.has-success
คลาสด้วยการตรวจสอบความถูกต้องของแบบฟอร์ม HTML5 ผ่าน CSS:invalid
และ:valid
คลาสหลอก - เปลี่ยนชื่อ
.form-control-static
เป็น.form-control-plaintext
.
ปุ่ม
- เปลี่ยนชื่อ
.btn-default
เป็น.btn-secondary
. - ลด
.btn-xs
ชั้นเรียนทั้งหมดตาม.btn-sm
สัดส่วนที่เล็กกว่า v3 มาก - ฟีเจอร์ปุ่มเก็บ สถานะของ
button.js
ปลั๊กอิน jQuery ถูกละทิ้ง ซึ่งรวมถึงวิธีการ$().button(string)
และ$().button('reset')
เราแนะนำให้ใช้ JavaScript แบบกำหนดเองเล็กน้อยแทน ซึ่งจะมีประโยชน์ในการดำเนินการตามที่คุณต้องการ- โปรดทราบว่าคุณลักษณะอื่นๆ ของปลั๊กอิน (ช่องทำเครื่องหมายของปุ่ม วิทยุของปุ่ม ปุ่มสลับครั้งเดียว) จะยังคงอยู่ในเวอร์ชัน 4.4.3
- เปลี่ยนปุ่ม
[disabled]
เป็น:disabled
ตามที่ IE9+ รองรับ:disabled
. อย่างไรก็ตามfieldset[disabled]
ยังมีความจำเป็นเนื่องจากชุด ฟิลด์ที่ ปิดใช้งานโดยเนทีฟยังคงมีปัญหาใน IE11
กลุ่มปุ่ม
- เขียนองค์ประกอบใหม่ด้วย flexbox
- นำออก
.btn-group-justified
แล้ว คุณสามารถใช้<div class="btn-group d-flex" role="group"></div>
เป็นตัวห่อหุ้มรอบองค์ประกอบด้วย.w-100
. - ดร็อป
.btn-group-xs
คลาสทั้งหมดเนื่องจากการลบ.btn-xs
. - ลบระยะห่างที่ชัดเจนระหว่างกลุ่มปุ่มในแถบเครื่องมือปุ่ม ใช้ยูทิลิตี้มาร์จิ้นทันที
- ปรับปรุงเอกสารประกอบสำหรับใช้กับส่วนประกอบอื่นๆ
ดรอปดาวน์
- เปลี่ยนจากตัวเลือกพาเรนต์เป็นคลาสเอกพจน์สำหรับส่วนประกอบทั้งหมด ตัวดัดแปลง ฯลฯ
- รูปแบบดรอปดาวน์ที่ง่ายขึ้นเพื่อไม่ให้จัดส่งโดยมีลูกศรชี้ขึ้นหรือลงที่ติดอยู่กับเมนูดรอปดาวน์อีกต่อไป
- ดรอปดาวน์สามารถสร้างได้ด้วย
<div>
s หรือ<ul>
s ตอนนี้ - สร้างรูปแบบดรอปดาวน์และมาร์กอัปใหม่เพื่อให้การสนับสนุน
<a>
และ<button>
รายการดรอปดาวน์ ในตัวที่ใช้งานง่าย - เปลี่ยนชื่อ
.divider
เป็น.dropdown-divider
. - รายการแบบเลื่อนลงตอนนี้
.dropdown-item
ต้องการ - การสลับแบบเลื่อนลงไม่จำเป็นต้องมีข้อความที่ชัดเจนอีกต่อ
<span class="caret"></span>
ไป ขณะนี้มีให้โดยอัตโนมัติผ่าน CSS::after
ใน.dropdown-toggle
.
ระบบกริด
- เพิ่ม
576px
กริดเบรกพอยต์ใหม่เป็นsm
ซึ่งหมายความว่าขณะนี้มีทั้งหมดห้าระดับ (xs
,sm
,md
,lg
, และxl
) - เปลี่ยนชื่อคลาสตัวแก้ไขกริดที่ตอบสนองจาก
.col-{breakpoint}-{modifier}-{size}
เป็น.{modifier}-{breakpoint}-{size}
สำหรับคลาสกริดที่ง่ายกว่า order
คลาสตัวแก้ไขการผลักและดึงที่ลดลงสำหรับ คลาสที่ขับเคลื่อนด้วย flexbox ใหม่ ตัวอย่างเช่น แทนที่จะใช้.col-8.push-4
and คุณ.col-4.pull-8
จะใช้.col-8.order-2
และ.col-4.order-1
- เพิ่มคลาสยูทิลิตี้ flexbox สำหรับระบบกริดและส่วนประกอบ
รายชื่อกลุ่ม
- เขียนองค์ประกอบใหม่ด้วย flexbox
- แทนที่
a.list-group-item
ด้วยคลาสที่ชัดเจน.list-group-item-action
สำหรับการกำหนดสไตล์ลิงก์และปุ่มของรายการกลุ่มรายการ - เพิ่ม
.list-group-flush
คลาสสำหรับใช้กับการ์ด
โมดอล
- เขียนองค์ประกอบใหม่ด้วย flexbox
- เมื่อย้ายไปที่ flexbox การจัดตำแหน่งของไอคอนปิดในส่วนหัวอาจใช้งานไม่ได้เนื่องจากเราไม่ได้ใช้การลอยอีกต่อไป เนื้อหาแบบลอยต้องมาก่อน แต่ด้วย flexbox จะไม่เป็นเช่นนั้นอีกต่อไป อัปเดตไอคอนปิดของคุณให้อยู่หลังชื่อโมดอลเพื่อแก้ไข
- ตัว
remote
เลือก (ซึ่งสามารถใช้เพื่อโหลดและแทรกเนื้อหาภายนอกลงในโมดอลโดยอัตโนมัติ) และloaded.bs.modal
เหตุการณ์ที่เกี่ยวข้องถูกลบออก เราขอแนะนำให้ใช้เทมเพลตฝั่งไคลเอ็นต์หรือเฟรมเวิร์กการเชื่อมโยงข้อมูล หรือเรียกjQuery.loadด้วยตนเอง
Navs
- เขียนองค์ประกอบใหม่ด้วย flexbox
- ยกเลิกตัวเลือกเกือบทั้งหมด
>
สำหรับการจัดสไตล์ที่ง่ายกว่าผ่านคลาสที่ไม่ได้ซ้อนกัน - แทนที่จะใช้ตัวเลือกเฉพาะ HTML เช่น
.nav > li > a
เราใช้คลาสแยกสำหรับ.nav
s,.nav-item
s และ.nav-link
s สิ่งนี้ทำให้ HTML ของคุณมีความยืดหยุ่นมากขึ้นในขณะที่เพิ่มความสามารถในการขยาย
แถบนำทาง
แถบนำทางถูกเขียนใหม่ใน flexbox พร้อมการสนับสนุนที่ปรับปรุงสำหรับการจัดตำแหน่ง การตอบสนอง และการปรับแต่ง
- ขณะนี้ลักษณะการทำงานของแถบนำทางที่ตอบสนองได้ถูกนำไปใช้กับ
.navbar
ชั้นเรียนผ่านทางที่จำเป็น.navbar-expand-{breakpoint}
ซึ่งคุณสามารถเลือกตำแหน่งที่จะยุบแถบนำทางได้ ก่อนหน้านี้เป็นการปรับเปลี่ยนตัวแปรน้อยและต้องมีการคอมไพล์ใหม่ .navbar-default
อยู่ในขณะนี้.navbar-light
แม้ว่าจะ.navbar-dark
ยังเหมือนเดิม จำเป็นต้องมีอย่างใดอย่างหนึ่งในแถบนำทางแต่ละแถบ อย่างไรก็ตามคลาสเหล่านี้ไม่ได้ตั้งค่าbackground-color
s อีกต่อไป แทนที่จะส่งผลกระทบcolor
เท่านั้น- ตอนนี้ Navbars ต้องการการประกาศพื้นหลังบางประเภท เลือกจากยูทิลิตี้พื้นหลังของเรา (
.bg-*
) หรือตั้งค่าของคุณเองด้วยคลาส light/inverse ด้านบนสำหรับการปรับแต่งที่บ้าคลั่ง - เมื่อกำหนดรูปแบบ flexbox แล้ว แถบนำทางสามารถใช้ยูทิลิตี้ flexbox เพื่อให้ตัวเลือกการจัดตำแหน่งได้ง่าย
.navbar-toggle
อยู่ในขณะนี้.navbar-toggler
และมีสไตล์ที่แตกต่างกันและมาร์กอัปภายใน (ไม่เกินสาม<span>
วินาที)- เลิก
.navbar-form
เรียนทั้งคณะ ไม่จำเป็นอีกต่อไป เพียงใช้.form-inline
และใช้ยูทิลิตี้มาร์จิ้นแทนตามความจำเป็น - แถบนำทางจะไม่รวม
margin-bottom
หรือborder-radius
ตามค่าเริ่มต้นอีกต่อไป ใช้ยูทิลิตี้เท่าที่จำเป็น - ตัวอย่างทั้งหมดที่มีแถบนำทางได้รับการอัปเดตเพื่อรวมมาร์กอัปใหม่
การแบ่งหน้า
- เขียนองค์ประกอบใหม่ด้วย flexbox
- ตอนนี้จำเป็นต้องมี คลาสที่ชัดเจน (
.page-item
,.page-link
) กับลูกหลานของ.pagination
s - วาง
.pager
องค์ประกอบทั้งหมดลงเนื่องจากเป็นมากกว่าปุ่มโครงร่างที่กำหนดเองเล็กน้อย
เกล็ดขนมปัง
- ตอนนี้จำเป็นต้อง มีคลาสที่ชัดเจน
.breadcrumb-item
สำหรับทายาทของ.breadcrumb
s
ฉลากและตราสัญลักษณ์
- รวม
.label
และ.badge
แก้ความกำกวมจาก<label>
องค์ประกอบและทำให้องค์ประกอบที่เกี่ยวข้องง่ายขึ้น - เพิ่ม
.badge-pill
เป็นตัวแก้ไขสำหรับรูปลักษณ์ "ยาเม็ด" ที่โค้งมน - ป้ายจะไม่ลอยโดยอัตโนมัติในกลุ่มรายการและส่วนประกอบอื่นๆ ตอนนี้จำเป็นต้องมีคลาสยูทิลิตี้สำหรับสิ่งนั้น
.badge-default
ถูกดร็อปและ.badge-secondary
เพิ่มเข้ากับคลาสตัวปรับแต่งส่วนประกอบที่ใช้ที่อื่น
แผง ภาพขนาดย่อ และหลุม
ลดลงทั้งหมดสำหรับองค์ประกอบการ์ดใหม่
แผง
.panel
ถึง.card
ตอนนี้สร้างด้วย flexbox.panel-default
ถอดแล้วไม่มีเปลี่ยน.panel-group
ถอดแล้วไม่มีเปลี่ยน.card-group
ไม่ใช่สิ่งทดแทน มันต่างกัน.panel-heading
ถึง.card-header
.panel-title
ถึง.card-title
. ขึ้นอยู่กับลักษณะที่ต้องการ คุณอาจต้องการใช้องค์ประกอบส่วนหัวหรือคลาส (เช่น<h3>
,.h3
) หรือองค์ประกอบหรือคลาสตัวหนา (เช่น<strong>
,<b>
,.font-weight-bold
) โปรดทราบว่า.card-title
แม้ว่าจะมีชื่อคล้ายกัน แต่ให้รูปลักษณ์ที่แตกต่างจาก.panel-title
..panel-body
ถึง.card-body
.panel-footer
ถึง.card-footer
.panel-primary
,.panel-success
,.panel-info
,.panel-warning
, และ.panel-danger
ถูกทิ้งสำหรับ.bg-
,.text-
, และ.border
ยูทิลิตี้ที่สร้างจาก$theme-colors
แผนที่ Sass ของเรา
ความคืบหน้า
- แทนที่
.progress-bar-*
คลาสตามบริบทด้วย.bg-*
ยูทิลิตี้ ตัวอย่างเช่นclass="progress-bar progress-bar-danger"
กลายเป็นclass="progress-bar bg-danger"
. - แทนที่
.active
แถบแสดงความคืบหน้าแบบเคลื่อนไหวด้วย.progress-bar-animated
.
ม้าหมุน
- ยกเครื่องส่วนประกอบทั้งหมดเพื่อให้การออกแบบและสไตล์ง่ายขึ้น เรามีรูปแบบน้อยลงสำหรับคุณที่จะแทนที่ ตัวบ่งชี้ใหม่ และไอคอนใหม่
- CSS ทั้งหมดได้รับการ un-nested และเปลี่ยนชื่อ เพื่อให้แน่ใจว่าแต่ละ class นำหน้าด้วย
.carousel-
.- สำหรับรายการแบบหมุน ,
.next
,.prev
,.left
, และ.right
ตอนนี้,.carousel-item-next
,.carousel-item-prev
,.carousel-item-left
และ.carousel-item-right
.item
ก็คือตอนนี้.carousel-item
ด้วย- สำหรับการควบคุมก่อนหน้า/ถัดไป
.carousel-control.right
และ.carousel-control.left
are now.carousel-control-next
และ.carousel-control-prev
หมายความว่าไม่ต้องการคลาสฐานเฉพาะอีกต่อไป
- สำหรับรายการแบบหมุน ,
- นำสไตล์ที่ตอบสนองทั้งหมดออก เลื่อนไปที่ยูทิลิตี้ (เช่น การแสดงคำบรรยายบนวิวพอร์ตบางประเภท) และสไตล์ที่กำหนดเองตามต้องการ
- รูปภาพที่ถูกลบจะแทนที่รูปภาพในรายการแบบหมุน โดยเลื่อนไปที่ยูทิลิตี้
- ปรับแต่งตัวอย่าง Carousel เพื่อรวมมาร์กอัปและรูปแบบใหม่
โต๊ะ
- นำการสนับสนุนสำหรับตารางที่ซ้อนกันที่มีสไตล์ออก ขณะนี้ สไตล์ตารางทั้งหมดสืบทอดมาใน v4 สำหรับตัวเลือกที่ง่ายกว่า
- เพิ่มตัวแปรตารางผกผัน
สาธารณูปโภค
- แสดง ซ่อน และอื่นๆ:
- ทำให้ยูทิลิตีการแสดงผลตอบสนอง (เช่น
.d-none
และd-{sm,md,lg,xl}-none
) - ลดจำนวน
.hidden-*
ยูทิลิตี้สำหรับยูทิลิตี้การแสดงผลใหม่ ตัวอย่างเช่น แทนที่จะ.hidden-sm-up
ใช้.d-sm-none
. เปลี่ยนชื่อ.hidden-print
ยูทิลิตีเพื่อใช้รูปแบบการตั้งชื่อยูทิลิตีการแสดงผล ข้อมูลเพิ่มเติมภายใต้ส่วนResponsive Utilitiesของหน้านี้ - เพิ่ม
.float-{sm,md,lg,xl}-{left,right,none}
คลาสสำหรับ floats ที่ตอบสนองและลบ.pull-left
และ.pull-right
เนื่องจากซ้ำซ้อนกับ.float-left
and.float-right
.
- ทำให้ยูทิลิตีการแสดงผลตอบสนอง (เช่น
- พิมพ์:
- เพิ่มรูปแบบที่ตอบสนองต่อคลาสการจัดตำแหน่งข้อความของ
.text-{sm,md,lg,xl}-{left,center,right}
เรา
- เพิ่มรูปแบบที่ตอบสนองต่อคลาสการจัดตำแหน่งข้อความของ
- การจัดตำแหน่งและระยะห่าง:
- เพิ่มยูทิลิตี้ระยะขอบและช่องว่างภายในที่ตอบสนอง ใหม่ สำหรับทุกด้าน รวมทั้งชวเลขแนวตั้งและแนวนอน
- เพิ่มเรือบรรทุกของ ยูทิลิ ตี้flexbox
- หลุด
.center-block
สำหรับ.mx-auto
คลาส ใหม่
- อัปเดต Clearfix เพื่อเลิกรองรับเบราว์เซอร์เวอร์ชันเก่า
mixins คำนำหน้าผู้ขาย
มิกซ์อิน คำนำหน้าผู้ขายของ Bootstrap 3 ซึ่งเลิกใช้แล้วใน v3.2.0 ถูกลบใน Bootstrap 4 เนื่องจากเราใช้Autoprefixerจึงไม่มีความจำเป็นอีกต่อไป
ลบมิกซ์อินต่อไปนี้: animation
, animation-delay
, animation-direction
, animation-duration
, animation-fill-mode
, animation-iteration-count
, animation-name
, animation-timing-function
, backface-visibility
, box-sizing
, content-columns
, hyphens
, opacity
, perspective
, perspective-origin
, rotate
, rotateX
, rotateY
, scale
, scaleX
, scaleY
, skew
, transform-origin
, transition-delay
, transition-duration
, transition-property
, transition-timing-function
, transition-transform
, translate
, translate3d
,user-select
เอกสาร
เอกสารของเราได้รับการอัปเกรดทั่วทั้งกระดานเช่นกัน นี่คือจุดต่ำสุด:
- เรายังคงใช้ Jekyll อยู่ แต่เรามีปลั๊กอินในการผสมผสาน:
bugify.rb
ใช้เพื่อแสดงรายการในหน้าบั๊กของเบราว์เซอร์ ของเราอย่างมีประสิทธิภาพexample.rb
เป็นส้อมแบบกำหนดเองของhighlight.rb
ปลั๊กอินเริ่มต้น ซึ่งช่วยให้จัดการโค้ดตัวอย่างได้ง่ายขึ้นcallout.rb
เป็นส้อมแบบกำหนดเองที่คล้ายกัน แต่ออกแบบมาสำหรับข้อความเสริมของเอกสารพิเศษของเรา- jekyll-tocใช้เพื่อสร้างสารบัญของเรา
- เนื้อหาในเอกสารทั้งหมดถูกเขียนใหม่ใน Markdown (แทนที่จะเป็น HTML) เพื่อให้แก้ไขได้ง่ายขึ้น
- หน้าได้รับการจัดระเบียบใหม่สำหรับเนื้อหาที่เรียบง่ายและลำดับชั้นที่เข้าถึงได้ง่ายขึ้น
- เราย้ายจาก CSS ปกติไปเป็น SCSS เพื่อใช้ประโยชน์จากตัวแปร มิกซ์อิน และอื่นๆ ของ Bootstrap
สาธารณูปโภคที่ตอบสนอง
ตัวแปร ทั้งหมด@screen-
ถูกลบใน v4.0.0 ใช้ มิกซ์อิน media-breakpoint-up()
, media-breakpoint-down()
, หรือmedia-breakpoint-only()
Sass หรือ$grid-breakpoints
แมป Sass แทน
คลาสยูทิลิตี้ที่ตอบสนองของเราส่วนใหญ่ถูกลบออกไปเพื่อสนับสนุนยูทิลิตี้ที่display
ชัดเจน
- คลาส
.hidden
และ.show
ถูกลบออกเนื่องจากขัดแย้งกับ jQuery's$(...).hide()
และ$(...).show()
เมธอด ให้ลองสลับ แอตทริบิวต์หรือใช้รูป แบบ[hidden]
อินไลน์ เช่นstyle="display: none;"
และstyle="display: block;"
.hidden-
คลาส ทั้งหมด ถูกลบแล้ว บันทึกไว้สำหรับยูทิลิตี้การพิมพ์ที่เปลี่ยนชื่อ- นำออกจาก v3:
.hidden-xs
.hidden-sm
.hidden-md
.hidden-lg
.visible-xs-block
.visible-xs-inline
.visible-xs-inline-block
.visible-sm-block
.visible-sm-inline
.visible-sm-inline-block
.visible-md-block
.visible-md-inline
.visible-md-inline-block
.visible-lg-block
.visible-lg-inline
.visible-lg-inline-block
- นำออกจากอัลฟ่า v4:
.hidden-xs-up
.hidden-xs-down
.hidden-sm-up
.hidden-sm-down
.hidden-md-up
.hidden-md-down
.hidden-lg-up
.hidden-lg-down
- นำออกจาก v3:
- ยูทิลิตี้การพิมพ์ไม่ได้เริ่มต้นด้วย
.hidden-
หรือ.visible-
แต่ด้วย.d-print-
.- ชื่อเดิม:
.visible-print-block
,.visible-print-inline
,.visible-print-inline-block
,.hidden-print
- คลาสใหม่:
.d-print-block
,.d-print-inline
,.d-print-inline-block
,.d-print-none
- ชื่อเดิม:
แทนที่จะใช้.visible-*
คลาสที่ชัดเจน คุณทำให้องค์ประกอบมองเห็นได้โดยเพียงแค่ไม่ซ่อนไว้ที่ขนาดหน้าจอนั้น คุณสามารถรวม.d-*-none
คลาสหนึ่งกับ.d-*-block
คลาสหนึ่งเพื่อแสดงองค์ประกอบเฉพาะในช่วงเวลาที่กำหนดของขนาดหน้าจอ (เช่น.d-none.d-md-block.d-xl-none
แสดงองค์ประกอบบนอุปกรณ์ขนาดกลางและขนาดใหญ่เท่านั้น)
โปรดทราบว่าการเปลี่ยนแปลงของเบรกพอยต์กริดใน v4 หมายความว่าคุณจะต้องเพิ่มเบรกพอยต์หนึ่งจุดให้ใหญ่ขึ้นเพื่อให้ได้ผลลัพธ์เดียวกัน คลาสยูทิลิตีแบบตอบสนองใหม่จะไม่พยายามรองรับกรณีทั่วไปที่น้อยกว่าซึ่งการมองเห็นขององค์ประกอบไม่สามารถแสดงเป็นช่วงขนาดวิวพอร์ตที่ต่อเนื่องกันเพียงช่วงเดียว คุณจะต้องใช้ CSS ที่กำหนดเองแทนในกรณีดังกล่าว