Saya mencoba membuat tata letak ketinggian dua kolom penuh dengan bootstrap twitter 3. Tampaknya twitter bootstrap 3 tidak mendukung tata letak tinggi penuh. Apa yang ingin saya lakukan:
+-------------------------------------------------+
| Header |
+------------+------------------------------------+
| | |
| | |
|Navigation | Content |
| | |
| | |
| | |
| | |
| | |
| | |
+------------+------------------------------------+
Jika konten tumbuh, nav juga harus tumbuh.
- Tinggi 100% untuk setiap orang tua tidak berfungsi karena ada kasus di mana konten adalah satu baris.
- Posisi absolut sepertinya cara yang salah
display: table
dandisplay:table-cell
memecahkan masalah, tetapi tidak elegan
html:
<div class="container">
<div class="row">
<div class="col-md-3"></div>
<div class="col-md-9"></div>
</div>
</div>
Apakah ada cara untuk membuatnya dengan kelas default twitter bootstrap 3 ?
html
css
twitter-bootstrap
uladzimir
sumber
sumber
Jawaban:
Sunting: Di Bootstrap 4 , kelas asli dapat menghasilkan kolom dengan tinggi penuh ( DEMO ) karena mereka mengubah sistem kisi mereka menjadi flexbox. (Baca terus untuk Bootstrap 3)
Kelas Bootstrap 3.0 asli tidak mendukung tata letak yang Anda uraikan, namun, kami dapat mengintegrasikan beberapa CSS khusus yang memanfaatkan tabel css untuk mencapai hal ini.
Demo / Codepen bootply
Markup:
(Relevan) CSS
Kode di atas akan mencapai kolom ketinggian penuh (karena sifat tabel css khusus yang kami tambahkan) dan dengan rasio 1: 3 (Navigasi: Konten) untuk lebar layar menengah ke atas - (karena kelas default bootstrap: col-md -3 dan col-md-9)
NB:
1) Agar tidak mengacaukan kelas kolom asli bootstrap kami menambahkan kelas lain seperti
no-float
di markup dan hanya mengaturdisplay:table-cell
danfloat:none
pada kelas ini (seperti yang ditambahkan ke kelas kolom sendiri).2) Jika kita hanya ingin menggunakan kode css-table untuk break-point tertentu (katakanlah lebar layar sedang dan di atas) tetapi untuk layar seluler kita ingin kembali ke perilaku bootstrap yang biasa daripada kita dapat membungkus CSS khusus kita dalam permintaan media, katakan:
Demo codepen
Sekarang, untuk layar yang lebih kecil, kolom akan berperilaku seperti kolom bootstrap default (masing-masing mendapatkan lebar penuh).
3) Jika rasio 1: 3 diperlukan untuk semua lebar layar - maka mungkin lebih baik untuk menghapus kelas col-md- * bootstrap dari markup karena itu bukan bagaimana mereka seharusnya digunakan.
Demo codepen
sumber
Anda dapat mencapai apa yang Anda inginkan dengan
padding-bottom: 100%; margin-bottom: -100%;
triknya, sudahkah Anda bisa melihatnya di biola ini .Saya mengubah HTML Anda sedikit, tetapi Anda dapat mencapai hasil yang sama dengan HTML Anda sendiri dengan kode berikut
sumber
Solusi CSS murni
Biola yang Bekerja
Hanya menggunakan CSS2.1, Bekerja dengan semua browser (IE8 +), tanpa menentukan tinggi atau lebar.
Itu berarti bahwa jika tajuk Anda tiba-tiba bertambah panjang, atau navigasi kiri Anda perlu diperbesar, Anda tidak perlu memperbaiki apa pun di CSS Anda.
Benar-benar responsif, sederhana & jelas dan sangat mudah dikelola.
Penjelasan: Wadah itu
div
mengambil tinggi 100% dari tubuh, dan dia dibagi menjadi 2 bagian. Bagian header akan merentang ke ketinggian yang dibutuhkan, danHeightTaker
akan mengambil sisanya. Bagaimana itu dicapai? dengan mengapung elemen kosong di sepanjang sisi wadah dengan tinggi 100% (menggunakan:before
), dan memberikanHeightTaker
elemen kosong di akhir dengan aturan yang jelas (menggunakan:after
). elemen itu tidak bisa berada di garis yang sama dengan elemen melayang, jadi dia mendorong sampai akhir. tepatnya 100% dari dokumen.Dengan itu kami membuat
HeightTaker
rentang sisa wadah tinggi, tanpa menyebutkan tinggi / margin tertentu.di dalam itu
HeightTaker
kita membangun tata letak melayang normal (untuk mencapai tampilan kolom seperti) dengan perubahan kecil .. kita memilikiWrapper
elemen, yang diperlukan untuk100%
ketinggian untuk bekerja.Memperbarui
Inilah Demo dengan kelas Bootstrap. (Saya baru saja menambahkan satu div ke tata letak Anda)
sumber
Saya berpikir tentang perubahan halus, yang tidak mengubah perilaku bootstrap default. Dan saya bisa menggunakannya hanya ketika saya membutuhkannya:
jadi saya bisa menggunakannya seperti ini:
sumber
Sepengetahuan saya, Anda dapat menggunakan hingga 5 metode untuk mencapai ini:
Bootstrap: Saya tidak punya banyak pengalaman dengan itu tetapi saya tidak berpikir mereka memberikan gaya untuk itu.
sumber
Solusi modern dan sangat sederhana:
HTML:
CSS:
sumber
Solusi CSS murni cukup mudah dan berfungsi seperti browser lintas pesona.
Anda cukup menambahkan padding besar dan margin negatif sama besar ke kolom nav dan konten, kemudian bungkus baris mereka di kelas dengan overflow tersembunyi.
Tampilan langsung
Edit tampilan
HTML
CSS
Semoga berhasil!
sumber
Solusinya dapat dicapai dengan dua cara
Kelas-kelas yang digunakan untuk mendapatkan solusi di atas tidak disediakan di bootstrap 3. display: table and display: table-cell diberikan tetapi hanya saat menggunakan tabel dalam HTML. margin negatif dan kelas padding juga tidak ada.
Karenanya kita harus menggunakan custom css untuk mencapai ini.
Di bawah ini adalah solusi pertama
Kode HTML:
css yang sesuai:
Di bawah ini adalah solusi kedua
Kode HTML:
css yang sesuai:
sumber
Ok, saya telah mencapai hal yang sama menggunakan Bootstrap 3.0
Contoh dengan bootstrap terbaru
http://jsfiddle.net/HDNQS/1/
HTML:
SCSS:
sumber
content:none
dan hal-hal kecil lainnya). Saya ingin memposting pengganti 'drop-in' yang dapat saya copypasta jugaJadi sepertinya pilihan terbaik Anda akan
padding-bottom
dilawan denganmargin-bottom
strategi negatif .Saya membuat dua contoh. Satu dengan
<header>
di dalam.container
, dan satu lagi di luar .Kedua versi harus berfungsi dengan baik. Perhatikan penggunaan
@media
kueri berikut ini sehingga menghapus bantalan ekstra pada layar yang lebih kecil ...Selain itu, contoh-contoh itu harus memperbaiki masalah Anda.
sumber
ada cara yang jauh lebih mudah untuk melakukan ini jika yang Anda khawatirkan adalah meletakkan warna.
Letakkan ini pertama atau terakhir di tag tubuh Anda
dan ini di css Anda
Anda hanya membuat bentuk, menyematkannya di belakang halaman dan merentangkannya hingga ketinggian penuh. Dengan memanfaatkan kelas bootstrap yang ada, Anda akan mendapatkan lebar yang tepat dan itu akan tetap responsif.
Ada beberapa batasan dengan metode ini dari c, tetapi jika itu untuk struktur root halaman, itu adalah jawaban terbaik.
sumber
position: absolute
, makaposition: fixed
?.container-fluid
. Saya ingin menggunakannya.container
. Ide ide?.container
atau.container-fluid
tidak memiliki relevansi dengan ini sama sekali. yang.col.col-md-2
set lebar menggunakan bootstrap. CSS saya di atas memaksa div ke ketinggian penuh, dengan z-index negatif yang cukup untuk memastikan itu di balik segalanya. Seperti yang dinyatakan di atas, itu harus menjadi yang pertama, atau elemen terakhir dalam<body>
tag AndaSaya menulis CSS sederhana yang kompatibel dengan Bootstrap untuk membuat tabel lebar dan tinggi penuh:
Fiddle: https://jsfiddle.net/uasbfc5e/4/
Prinsipnya adalah:
HTML:
CSS:
sumber
0%;
ke0;
yang sama sekali berbeda. Jika itu terjadi, Anda bisa menggunakannya1%;
.mencoba
css untuk kelas .fill di bawah
Untuk referensi Anda lihat saja biola.
sumber
span
kecol-md-
dan mari kita lihat apa yang terjadi<div class="container"> <div class="row"> <div class="col-md-12">header section</div> </div> <div class="row"> <div class="col-md-4">Navigation</div> <div class="col-md-8">Content</div> </div> </div>
coba ini
Kunjungi http://www.sitepoint.com/building-responsif-website-using-twitter-bootstrap/
Terima kasih untuk Syed
sumber
Jika tidak akan ada konten setelah baris (seluruh layar diambil), trik menggunakan
position: fixed; height: 100%
untuk.col:before
elemen dapat bekerja dengan baik:sumber
Ini tidak disebutkan di sini dengan penyeimbangan.
Anda dapat menggunakan posisi absolut untuk sidebar kiri.
CSS
HTML
sumber
Coba ini
Ini menggunakan Bootstrap 3 sehingga tidak perlu untuk CSS tambahan dll ...
sumber
Pernahkah Anda melihat afiks bootstrap di bagian JAvascript ???
Saya pikir itu akan menjadi Bung solusi terbaik & termudah.
Lihat di sana: http://getbootstrap.com/javascript/#affix
sumber
Setelah bereksperimen dengan kode yang disediakan di sini: Tutorial Bootstrap
Berikut adalah alternatif lain menggunakan Bootstrap v3.0.2 terbaru :
Markup:
CSS tambahan:
Contoh JSFiddle
Semoga ini bisa membantu siapa saja yang tertarik.
sumber