Saya ingin menggunakan Twitter Bootstrap, tetapi hanya pada elemen tertentu, jadi saya perlu mencari cara untuk mengawali semua kelas Twitter Bootstrap dengan awalan saya, atau menggunakan lebih sedikit mixin. Saya belum berpengalaman dengan ini jadi saya tidak begitu mengerti bagaimana melakukan ini. Berikut adalah contoh HTML yang saya coba buat gaya:
<div class="normal-styles">
<h1>dont style this with bootstrap</h1>
<div class="bootstrap-styles">
<h1>use bootstrap</h1>
</div>
</div>
Dalam contoh ini, Twitter Bootstrap akan menata keduanya secara normal h1
, tetapi saya ingin lebih selektif tentang area mana yang saya gunakan untuk menerapkan gaya Bootstrap Twitter.
twitter-bootstrap
less
Andrew
sumber
sumber
Jawaban:
Ini ternyata lebih mudah dari yang saya kira. Baik Less dan Sass mendukung namespacing (bahkan menggunakan sintaks yang sama). Saat Anda menyertakan bootstrap, Anda dapat melakukannya dalam selektor ke namespace-nya:
Pembaruan: Untuk versi LESS yang lebih baru, berikut cara melakukannya:
Pertanyaan serupa dijawab di sini.
sumber
@import
Bootstrap asli. Saya juga memiliki masalah dengan modals, saya pikir karena Bootstrap menerapkan kelas tertentu ke tag body tingkat atas. Saya tidak ingat apakah saya menemukan solusi. Pada akhirnya, saya pikir saya akhirnya menulis pengganti modal saya sendiri.@Andrew jawaban yang bagus. Anda juga ingin mencatat bahwa bootstrap mengubah tubuh {}, terutama untuk menambahkan font. Jadi ketika Anda menamainya melalui LESS / SASS file css output Anda terlihat seperti ini: (dalam bootstrap 3)
tetapi jelas tidak akan ada tag body di dalam div Anda, jadi konten bootstrap Anda tidak akan memiliki font bootstrap (karena semua bootstrap mewarisi font dari induk)
Untuk memperbaikinya, jawabannya harus:
sumber
margin: 0;
Menggabungkan jawaban @Andrew, @Kevin dan @ adamj (ditambah beberapa gaya lainnya), jika Anda menyertakan yang berikut ini dalam file bernama "bootstrap-namespaced.less", Anda cukup mengimpor 'bootstrap-namespaced.less' ke mengajukan:
sumber
Menambahkan namespace ke bootstrap CSS akan merusak fungsionalitas modal karena bootstrap menambahkan kelas 'modal-backdrop' langsung ke body. Solusinya adalah dengan memindahkan elemen ini setelah membuka modal, misalnya:
Anda dapat menghapus elemen di handler untuk acara 'hide.bs.modal'.
sumber
this.modalService.open('myModal', {container: '#modalgoeshere'})
Gunakan file versi .less. Tentukan lebih sedikit file yang Anda perlukan, lalu bungkus file .less tersebut dengan:
Ini akan memberi Anda hasil dari:
sumber
Saya melakukan GIST dengan Bootstrap 3 semua di dalam kelas bernama .bootstrap-wrapper https://gist.github.com/onigetoc/20c4c3933cabd8672e3e
Saya mulai dengan alat ini: http://www.css-prefix.com/ Dan perbaiki sisanya dengan cari dan ganti di PHPstorm. Semua font @ font-face dihosting di maxcdn.
Contoh baris pertama
sumber
Namespacing merusak div backdrop Modal plugin, karena itu selalu ditambahkan langsung ke tag <body>, melewati elemen namespacing Anda yang memiliki gaya yang diterapkan padanya.
Anda dapat memperbaikinya dengan mengubah referensi plugin
$body
sebelum menampilkan latar belakang:The
$body
properti memutuskan di mana latar belakang akan ditambahkan.sumber
Untuk menjelaskan dengan lebih baik semua langkah yang dibicarakan Andrew bagi mereka yang tidak tahu apa itu Less. Berikut adalah tautan yang menjelaskan dengan cukup baik bagaimana hal itu dilakukan langkah demi langkah Bagaimana mengisolasi Bootstrap atau pustaka CSS lainnya
sumber
Solusi paling sederhana - mulai gunakan kelas css terisolasi yang dibuat khusus untuk Bootstrap.
Misalnya, untuk Bootstrap 4.1 unduh file dari direktori css4.1 -
https://github.com/cryptoapi/Isolate-Bootstrap-4.1-CSS-Themes
dan bungkus HTML Anda dalam div dengan kelas bootstrapiso:
Template halaman dengan bootstrap 4 terisolasi akan
sumber
Saya menghadapi masalah dan metode yang sama yang diusulkan oleh @Andrew sayangnya tidak membantu dalam kasus khusus saya. Kelas bootstrap bertabrakan dengan kelas dari kerangka lain. Ini adalah bagaimana proyek ini telah dimasukkan https://github.com/sneas/bootstrap-sass-namespace . Silakan gunakan.
sumber
Sebagai catatan lebih lanjut untuk semua orang. Untuk mendapatkan modals yang bekerja dengan backdrop Anda cukup menyalin style ini dari bootstrap3
sumber
Bootstrap klon pertama dari github:
Instal persyaratan:
Buka scss / bootstrap.scss dan tambahkan namespace Anda:
Kompilasi bootstrap:
Buka
dist/css/bootstrap.css
dan hapus namespace dari taghtml
danbody
.Setelah itu salin konten folder dist ke dalam proyek Anda dan Anda sudah siap.
Selamat bersenang-senang!
sumber