Rumah  >  Artikel  >  hujung hadapan web  >  Trik Bootstrap Setiap Pembangun UI Patut Tahu

Trik Bootstrap Setiap Pembangun UI Patut Tahu

Mary-Kate Olsen
Mary-Kate Olsenasal
2024-11-02 06:13:02960semak imbas

Bootstrap Tricks Every UI Developer Should Know

Pengenalan: Meningkatkan Permainan Bootstrap Anda

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!

1. Titik Putus Grid Tersuai: Responsif Dibuat Khusus

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:

Cara Melaksanakan Titik Putus Tersuai

  1. Buka fail pembolehubah Sass anda (biasanya _variables.scss).
  2. Cari pembolehubah $grid-breakpoints.
  3. Ubah suai titik putus sedia ada atau tambah yang baharu seperti ini:
$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?

2. Sass Mixins: Rakan Karib Baru Anda

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.

Saiz Fon Responsif

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?

Pusat Flexbox Pantas

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!

3. Penggayaan Borang Tersuai: Menonjolkan Orang Ramai

Gaya bentuk Bootstrap sangat bagus, tetapi kadangkala anda mahukan sesuatu yang lebih unik. Mari kita perbaiki sedikit!

Butang Radio Mewah

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!

Dropdown Pilih Bergaya

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!

4. Kelas Utiliti: Pisau Tentera Swiss CSS

Kelas utiliti Bootstrap sangat berkuasa, tetapi kadangkala anda memerlukan sedikit lagi. Mari cipta beberapa utiliti tersuai untuk menjadikan hidup anda lebih mudah.

Margin dan Padding Responsif

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!

Pemangkasan Teks

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!

5. Komponen Tersuai: Berfikir di Luar Kotak

Walaupun Bootstrap menyediakan set komponen yang hebat, kadangkala anda memerlukan sesuatu yang sedikit berbeza. Mari kita cipta komponen tersuai untuk menyelerakan.

Kad Fancy dengan Kesan Hover

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.

6. Pengoptimuman Prestasi: Memotong Lemak

Bootstrap bagus, tetapi ia boleh menjadi agak berat jika anda tidak menggunakan semua cirinya. Jom tengok cara kuruskan badan.

Binaan Tersuai

Daripada memasukkan semua Bootstrap, mengapa tidak membina versi tersuai dengan hanya komponen yang anda perlukan? Begini caranya:

  1. Klon repositori Bootstrap.
  2. Navigasi ke folder scss.
  3. Buka bootstrap.scss.
  4. Ulas komponen yang anda tidak perlukan.
  5. Kompilasi versi tersuai anda.

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!

7. Peningkatan Kebolehcapaian: Reka Bentuk Inklusif untuk Semua

Kebolehaksesan adalah penting untuk mencipta pengalaman web yang inklusif. Mari lihat beberapa cara untuk meningkatkan kebolehcapaian Bootstrap.

Langkau Pautan

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 Dipertingkat

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.

8. Imej Responsif: Gambar Sempurna pada Mana-mana Peranti

Imej boleh membuat atau memecahkan reka bentuk anda, terutamanya pada peranti mudah alih. Mari lihat beberapa cara untuk mengendalikan imej secara responsif.

Imej Latar Belakang 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.

Malas Memuatkan

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.

9. Mod Gelap: Merangkul Sisi Gelap

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.

Melaksanakan Mod Gelap

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!

10. Penyepaduan Animasi: Menghidupkan Tapak Anda

Akhir sekali, mari tambahkan beberapa animasi halus untuk menjadikan tapak Bootstrap anda berasa lebih dinamik dan menarik.

Animasikan pada Tatal

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!

Kenyataan:
Kandungan artikel ini disumbangkan secara sukarela oleh netizen, dan hak cipta adalah milik pengarang asal. Laman web ini tidak memikul tanggungjawab undang-undang yang sepadan. Jika anda menemui sebarang kandungan yang disyaki plagiarisme atau pelanggaran, sila hubungi admin@php.cn