Rumah > Artikel > hujung hadapan web > Trik Bootstrap Setiap Pembangun UI Patut Tahu
Hai, rakan pembangun UI! Adakah anda bersedia untuk membawa kemahiran Bootstrap anda ke peringkat seterusnya? Jika anda menganggukkan kepala (atau sekurang-kurangnya memikirkannya), anda telah datang ke tempat yang betul. Hari ini, kami menyelami 10 peretasan Bootstrap hebat yang akan menjadikan hidup anda lebih mudah dan projek anda bersinar. Sama ada anda seorang pemula Bootstrap atau pakar yang berpengalaman, helah ini akan membantu anda bekerja dengan lebih bijak, bukan lebih keras. Jadi, dapatkan minuman kegemaran anda, selesakan diri, dan mari terokai beberapa cara menarik untuk meningkatkan pembangunan Bootstrap anda!
Mari kita mulakan perkara ini dengan penukar permainan: titik putus grid tersuai. Kita semua tahu titik putus lalai Bootstrap adalah hebat, tetapi kadangkala ia tidak memotongnya untuk keperluan projek khusus kita. Di sinilah keajaiban berlaku:
$grid-breakpoints: ( xs: 0, sm: 576px, md: 768px, lg: 992px, xl: 1200px, xxl: 1400px, custom: 1600px );
Kini anda mempunyai titik putus 'tersuai' baharu yang berkilat pada 1600px! Tetapi tunggu, ada lagi. Jangan lupa untuk mengemas kini lebar maks bekas anda agar sepadan:
$container-max-widths: ( sm: 540px, md: 720px, lg: 960px, xl: 1140px, xxl: 1320px, custom: 1540px );
Dengan perubahan ini, anda kini boleh menggunakan kelas seperti col-custom-6 untuk kawalan reka letak yang sangat tepat. Sejuk kan?
Jika anda tidak menggunakan campuran Sass dengan Bootstrap, anda kehilangan beberapa kebaikan menjimatkan masa yang serius. Mari lihat beberapa contoh yang akan membuatkan anda tertanya-tanya bagaimana anda pernah hidup tanpa mereka.
Pernah mahu melaraskan saiz fon berdasarkan lebar skrin tanpa menulis satu tan pertanyaan media? Lihat ini:
@mixin responsive-font($min-size, $max-size, $min-width, $max-width) { font-size: calc(#{$min-size}px + (#{$max-size} - #{$min-size}) * ((100vw - #{$min-width}px) / (#{$max-width} - #{$min-width}))); } // Usage h1 { @include responsive-font(24, 48, 320, 1200); }
Campuran ini menskalakan saiz fon anda dengan lancar antara 24px pada lebar 320px pada port pandangan dan 48px pada lebar port pandangan 1200px. Agak kemas, ya?
Memusatkan perkara adalah tugas biasa, jadi mengapa tidak menjadikannya sangat mudah?
@mixin flex-center { display: flex; justify-content: center; align-items: center; } // Usage .centered-content { @include flex-center; }
Kini anda boleh memusatkan apa sahaja dengan hanya satu baris kod. Diri masa depan anda akan berterima kasih!
Gaya bentuk Bootstrap sangat bagus, tetapi kadangkala anda mahukan sesuatu yang lebih unik. Mari kita perbaiki sedikit!
Siapa kata butang radio mesti membosankan? Cuba ini untuk saiz:
.custom-radio { .custom-control-input { &:checked ~ .custom-control-label::before { background-color: #007bff; border-color: #007bff; } &:checked ~ .custom-control-label::after { background-image: url("data:image/svg+xml,%3csvg xmlns='http://www.w3.org/2000/svg' viewBox='-4 -4 8 8'%3e%3ccircle r='3' fill='%23fff'/%3e%3c/svg%3e"); } } }
Ini memberikan anda butang radio moden yang anggun dengan animasi yang bagus apabila dipilih. Jangan lupa kemas kini warna supaya sepadan dengan jenama anda!
Lalu turun pilih lalai boleh kelihatan sedikit... baik, lalai. Mari kita betulkan:
$grid-breakpoints: ( xs: 0, sm: 576px, md: 768px, lg: 992px, xl: 1200px, xxl: 1400px, custom: 1600px );
Ini memberikan dropdown pilihan anda ikon anak panah tersuai dan kesan fokus yang bagus. Perkara kecil yang penting!
Kelas utiliti Bootstrap sangat berkuasa, tetapi kadangkala anda memerlukan sedikit lagi. Mari cipta beberapa utiliti tersuai untuk menjadikan hidup anda lebih mudah.
Mahukan kawalan yang lebih terperinci ke atas jarak anda? Cuba ini:
$container-max-widths: ( sm: 540px, md: 720px, lg: 960px, xl: 1140px, xxl: 1320px, custom: 1540px );
Kini anda mempunyai kelas seperti mt-md-6 untuk margin teratas 4rem pada skrin sederhana dan ke atas. Kesempurnaan jarak!
Perlu memotong teks dengan elegan? Berikut ialah kelas utiliti yang berguna:
@mixin responsive-font($min-size, $max-size, $min-width, $max-width) { font-size: calc(#{$min-size}px + (#{$max-size} - #{$min-size}) * ((100vw - #{$min-width}px) / (#{$max-width} - #{$min-width}))); } // Usage h1 { @include responsive-font(24, 48, 320, 1200); }
Hanya tambahkan kelas ini pada mana-mana elemen dan teks panjang akan dipotong dengan elipsis. Mudah tetapi berkesan!
Walaupun Bootstrap menyediakan set komponen yang hebat, kadangkala anda memerlukan sesuatu yang sedikit berbeza. Mari kita cipta komponen tersuai untuk menyelerakan.
Siapa yang tidak sukakan kesan hover kad yang bagus? Lihat ini:
@mixin flex-center { display: flex; justify-content: center; align-items: center; } // Usage .centered-content { @include flex-center; }
Kini anda mempunyai kad yang terangkat sedikit dan menggelapkan imejnya pada tuding. Ia halus tetapi menambah sentuhan interaktiviti yang bagus pada reka bentuk anda.
Bootstrap bagus, tetapi ia boleh menjadi agak berat jika anda tidak menggunakan semua cirinya. Jom tengok cara kuruskan badan.
Daripada memasukkan semua Bootstrap, mengapa tidak membina versi tersuai dengan hanya komponen yang anda perlukan? Begini caranya:
Sebagai contoh, jika anda tidak menggunakan karusel atau petua alat, bootstrap.scss anda mungkin kelihatan seperti ini:
.custom-radio { .custom-control-input { &:checked ~ .custom-control-label::before { background-color: #007bff; border-color: #007bff; } &:checked ~ .custom-control-label::after { background-image: url("data:image/svg+xml,%3csvg xmlns='http://www.w3.org/2000/svg' viewBox='-4 -4 8 8'%3e%3ccircle r='3' fill='%23fff'/%3e%3c/svg%3e"); } } }
Ini boleh mengurangkan saiz fail CSS anda dengan ketara dan meningkatkan masa muat. Setiap kilobait dikira!
Kebolehaksesan adalah penting untuk mencipta pengalaman web yang inklusif. Mari lihat beberapa cara untuk meningkatkan kebolehcapaian Bootstrap.
Langkau pautan membantu pengguna papan kekunci menavigasi tapak anda dengan lebih cekap. Begini cara untuk melaksanakannya:
.custom-select { appearance: none; background: url("data:image/svg+xml,%3csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 4 5'%3e%3cpath fill='%23343a40' d='M2 0L0 2h4zm0 5L0 3h4z'/%3e%3c/svg%3e") no-repeat right .75rem center/8px 10px; padding-right: 2.25rem; &:focus { border-color: #80bdff; box-shadow: 0 0 0 0.2rem rgba(0, 123, 255, 0.25); } }
$spacer: 1rem; $spacers: ( 0: 0, 1: $spacer * .25, 2: $spacer * .5, 3: $spacer, 4: $spacer * 1.5, 5: $spacer * 3, 6: $spacer * 4, 7: $spacer * 5 ); @each $breakpoint in map-keys($grid-breakpoints) { @include media-breakpoint-up($breakpoint) { $infix: breakpoint-infix($breakpoint, $grid-breakpoints); @each $prop, $abbrev in (margin: m, padding: p) { @each $size, $length in $spacers { .#{$abbrev}#{$infix}-#{$size} { #{$prop}: $length !important; } .#{$abbrev}t#{$infix}-#{$size}, .#{$abbrev}y#{$infix}-#{$size} { #{$prop}-top: $length !important; } .#{$abbrev}r#{$infix}-#{$size}, .#{$abbrev}x#{$infix}-#{$size} { #{$prop}-right: $length !important; } .#{$abbrev}b#{$infix}-#{$size}, .#{$abbrev}y#{$infix}-#{$size} { #{$prop}-bottom: $length !important; } .#{$abbrev}l#{$infix}-#{$size}, .#{$abbrev}x#{$infix}-#{$size} { #{$prop}-left: $length !important; } } } } }
Ini mencipta pautan yang hanya kelihatan apabila difokuskan, membolehkan pengguna papan kekunci melangkau terus ke kandungan utama.
Gaya fokus lalai Bootstrap berfungsi, tetapi kami boleh menjadikannya lebih menarik secara visual:
$grid-breakpoints: ( xs: 0, sm: 576px, md: 768px, lg: 992px, xl: 1200px, xxl: 1400px, custom: 1600px );
Ini mencipta gaya fokus yang lebih ketara yang berfungsi dengan baik dengan skema warna Bootstrap.
Imej boleh membuat atau memecahkan reka bentuk anda, terutamanya pada peranti mudah alih. Mari lihat beberapa cara untuk mengendalikan imej secara responsif.
Mahukan imej latar belakang lebar penuh yang kelihatan hebat pada mana-mana peranti? Cuba ini:
$container-max-widths: ( sm: 540px, md: 720px, lg: 960px, xl: 1140px, xxl: 1320px, custom: 1540px );
Ini memuatkan imej bersaiz berbeza berdasarkan lebar port pandangan, memastikan latar belakang anda sentiasa kelihatan jelas tanpa saiz fail yang tidak perlu besar pada peranti yang lebih kecil.
Tingkatkan masa pemuatan halaman anda dengan malas memuatkan imej:
@mixin responsive-font($min-size, $max-size, $min-width, $max-width) { font-size: calc(#{$min-size}px + (#{$max-size} - #{$min-size}) * ((100vw - #{$min-width}px) / (#{$max-width} - #{$min-width}))); } // Usage h1 { @include responsive-font(24, 48, 320, 1200); }
@mixin flex-center { display: flex; justify-content: center; align-items: center; } // Usage .centered-content { @include flex-center; }
Skrip ini menggunakan API Intersection Observer untuk memuatkan imej hanya apabila ia akan memasuki port pandangan, meningkatkan masa pemuatan halaman awal dengan ketara.
Mod gelap menjadi kegilaan hari ini, dan atas sebab yang baik. Ia lebih mudah pada mata dalam keadaan cahaya malap dan boleh menjimatkan hayat bateri pada skrin OLED. Mari tambahkan togol mod gelap pada tapak Bootstrap kami.
Mula-mula, mari buat beberapa pembolehubah mod gelap:
.custom-radio { .custom-control-input { &:checked ~ .custom-control-label::before { background-color: #007bff; border-color: #007bff; } &:checked ~ .custom-control-label::after { background-image: url("data:image/svg+xml,%3csvg xmlns='http://www.w3.org/2000/svg' viewBox='-4 -4 8 8'%3e%3ccircle r='3' fill='%23fff'/%3e%3c/svg%3e"); } } }
Sekarang, mari tambah butang togol:
.custom-select { appearance: none; background: url("data:image/svg+xml,%3csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 4 5'%3e%3cpath fill='%23343a40' d='M2 0L0 2h4zm0 5L0 3h4z'/%3e%3c/svg%3e") no-repeat right .75rem center/8px 10px; padding-right: 2.25rem; &:focus { border-color: #80bdff; box-shadow: 0 0 0 0.2rem rgba(0, 123, 255, 0.25); } }
Dan JavaScript untuk menjadikannya berfungsi:
$spacer: 1rem; $spacers: ( 0: 0, 1: $spacer * .25, 2: $spacer * .5, 3: $spacer, 4: $spacer * 1.5, 5: $spacer * 3, 6: $spacer * 4, 7: $spacer * 5 ); @each $breakpoint in map-keys($grid-breakpoints) { @include media-breakpoint-up($breakpoint) { $infix: breakpoint-infix($breakpoint, $grid-breakpoints); @each $prop, $abbrev in (margin: m, padding: p) { @each $size, $length in $spacers { .#{$abbrev}#{$infix}-#{$size} { #{$prop}: $length !important; } .#{$abbrev}t#{$infix}-#{$size}, .#{$abbrev}y#{$infix}-#{$size} { #{$prop}-top: $length !important; } .#{$abbrev}r#{$infix}-#{$size}, .#{$abbrev}x#{$infix}-#{$size} { #{$prop}-right: $length !important; } .#{$abbrev}b#{$infix}-#{$size}, .#{$abbrev}y#{$infix}-#{$size} { #{$prop}-bottom: $length !important; } .#{$abbrev}l#{$infix}-#{$size}, .#{$abbrev}x#{$infix}-#{$size} { #{$prop}-left: $length !important; } } } } }
Kini anda mempunyai mod gelap berfungsi yang mengingati keutamaan pengguna!
Akhir sekali, mari tambahkan beberapa animasi halus untuk menjadikan tapak Bootstrap anda berasa lebih dinamik dan menarik.
Mula-mula, mari pasang pustaka AOS (Animate On Scroll):
.text-truncate { overflow: hidden; text-overflow: ellipsis; white-space: nowrap; }
Kini, kami boleh menambah animasi pada elemen kami:
.fancy-card { transition: transform 0.3s ease, box-shadow 0.3s ease; &:hover { transform: translateY(-5px); box-shadow: 0 4px 15px rgba(0,0,0,0.1); } .card-img-top { transition: opacity 0.3s ease; } &:hover .card-img-top { opacity: 0.8; } }
Atas ialah kandungan terperinci Trik Bootstrap Setiap Pembangun UI Patut Tahu. Untuk maklumat lanjut, sila ikut artikel berkaitan lain di laman web China PHP!