Twitter Bootstrap - menambahkan ruang teratas di antara baris

483

Bagaimana cara menambahkan margin ke class="row"elemen menggunakan kerangka bootstrap twitter?

ini aku
sumber

Jawaban:

801

Mengedit atau mengganti baris di bootstrap Twitter adalah ide yang buruk, karena ini adalah bagian inti dari perancah halaman dan Anda akan memerlukan baris tanpa margin atas.

Untuk mengatasinya, buatlah kelas baru "top-buffer" yang menambahkan margin standar yang Anda butuhkan.

.top-buffer { margin-top:20px; }

Dan kemudian gunakan pada baris divs di mana Anda memerlukan margin atas.

<div class="row top-buffer"> ...
Acyra
sumber
45
Mengedit baris asli salah untuk suatu kerangka kerja, dan kelas baru seharusnya hanya melengkapi kelas baris ... itu adalah perbedaan yang halus tetapi di Twitter Bootstrap baris memiliki peran tata letak halaman tertentu. Ngomong-ngomong, saya hanya berusaha membantu, solusi saya adalah solusi yang berfungsi untuk masalah ini.
Acyra
11
tidak mungkin, jawaban ini IMHO sedikit berbeda. Yang ini lebih dapat digunakan karena mencakup "nama gaya kelas Anda sehingga html Anda lebih mudah dibaca" dan Anda dapat membaca margin-top di html daripada rowSpecificForName. Jawaban ini lebih sesuai dengan pola bootstrap twitter.
Dean Hiller
2
Mereka akan menambahkan kelas spasi vertikal tertentu ke dalam Bootstrap 4: github.com/twbs/bootstrap/issues/4286
icc97
2
Yang saya pelajari dari komentar-komentar ini adalah bahwa pengembang sangat berpandangan keras dan beberapa lebih suka 2 + 3 = 5 dan yang lainnya 3 + 2 = 5. Bergerak ...
Fabio S.
3
@FabioS. Apa yang harus dipelajari adalah bahwa untuk kerangka kerja seperti Bootstrap, mengedit kode asli atau menimpanya adalah ide yang buruk. Skenarionya tidak terbatas tetapi di sini ada beberapa contoh. a.) menimpa - jika Anda menimpa kelas .row Anda sekarang harus melalui proyek Anda dan menambahkan kelas tambahan ke baris yang tidak boleh menerima margin b.) mengedit kode asli - Anda mewarisi proyek di tempat kerja dan Anda ingin untuk pindah ke bootstrap4; OOPS! Tidak ada yang terlihat benar !? Sekarang Anda memiliki beban untuk menelusuri file bootstrap 3 mencoba menemukan apa yang diubah oleh pengembang sebelumnya.
peroija
176

Ok hanya untuk memberi tahu Anda apa yang terjadi kemudian, saya tetap menggunakan beberapa kelas baru seperti yang Acyra katakan di atas:

.top5 { margin-top:5px; }
.top7 { margin-top:7px; }
.top10 { margin-top:10px; }
.top15 { margin-top:15px; }
.top17 { margin-top:17px; }
.top30 { margin-top:30px; }

kapan pun aku mau aku lakukan <div class="row top7"></div>

untuk responsif yang lebih baik, Anda dapat menambahkan margin-top:7%alih-alih 5pxmisalnya: D

ini aku
sumber
13
Saya merasa bahwa solusi ini jauh lebih elegan daripada solusi yang diterima.
rdiaz82
72
Sama.
alexander
@alexander tetapi lebih umum.
Ejaz
6
Bagaimana .top-buffer { margin-top:20px; }bedanya .top30 { margin-top:30px; }? Nah, dari sudut pandang pengembang mana pun: Itu sama. Penyesuaian agar sesuai dengan use case tidak dihitung di sini. Khususnya tidak, jika OP menjawab pertanyaannya sendiri.
alexander
2
Margin teratas 17px klasik; Sangat berguna.
adripanico
129

Bootstrap 3

Jika Anda perlu memisahkan baris dalam bootstrap, Anda cukup menggunakan .form-group. Ini menambahkan margin 15px ke bagian bawah baris.

Dalam kasus Anda, untuk mendapatkan margin teratas, Anda bisa menambahkan kelas ini ke .rowelemen sebelumnya

<div class="row form-group">

/* From bootstrap.css */
.form-group {
        margin-bottom: 15px;
}

Bootstrap 4

Anda dapat menggunakan kelas penspasian bawaan

<div class="row mt-3"></div>

"T" dalam nama kelas membuatnya hanya berlaku untuk sisi "atas", ada kelas serupa untuk bagian bawah, kiri, kanan. Angka mendefinisikan ukuran ruang.

Buksy
sumber
Apakah form-group dilepas dari BS4?
Z. Khullah
3
Tidak, form-groupmasih ada , tetapi kelas khusus untuk margin / padding telah ditambahkan yang dapat melakukan pekerjaan dan memiliki lebih banyak opsi.
Buksy
Apakah ada beberapa perubahan pada ini di Bootstrap V 4? Saya pada versi 4 sekarang dan mt-3tidak berfungsi begitu digunakanform-group
Nick Schwaderer
Seharusnya berfungsi , periksa apakah bootstrap css yang Anda tautkan ke proyek Anda berisi definisi kelas ".mt-3".
Buksy
82

Untuk jarak Bootstrap 4 harus diterapkan menggunakan

kelas utilitas steno

dalam format berikut:

{property} {sides} - {size}

Di mana properti adalah salah satu dari:

  • m - untuk kelas yang menetapkan margin
  • p - untuk kelas yang mengatur padding

Di mana sisi adalah salah satu dari:

  • t - untuk kelas yang mengatur margin-top atau padding-top
  • b - untuk kelas yang mengatur margin-bottom atau padding-bottom
  • l - untuk kelas yang mengatur margin-kiri atau padding-kiri
  • r - untuk kelas yang mengatur margin-right atau padding-right
  • x - untuk kelas yang mengatur * -left dan * -right
  • y - untuk kelas yang mengatur * -top dan * -bottom
  • blank - untuk kelas yang mengatur margin atau padding di keempat sisi elemen

Di mana ukuran adalah salah satu dari:

  • 0 - untuk kelas yang menghilangkan margin atau bantalan dengan mengaturnya ke 0
  • 1 - (secara default) untuk kelas yang mengatur margin atau padding ke $ spacer * .25
  • 2 - (secara default) untuk kelas yang mengatur margin atau padding ke $ spacer * .5
  • 3 - (secara default) untuk kelas yang mengatur margin atau padding ke $ spacer
  • 4 - (secara default) untuk kelas yang mengatur margin atau padding ke $ spacer * 1.5
  • 5 - (secara default) untuk kelas yang mengatur margin atau padding ke $ spacer * 3
  • auto - untuk kelas yang mengatur margin ke otomatis

Jadi, Anda harus melakukan semua ini:

<div class="row mt-1">
<div class="row mt-2">
          ...
<div class="row mt-5">

Baca dokumen untuk penjelasan lebih lanjut. Coba contoh langsung di sini .

Rajkaran Mishra
sumber
3
Ini seharusnya menjadi jawaban yang diterima sekarang dengan rilis Bootstrap 4. Muncul dengan kelas bawaan ini, tidak perlu membuat yang baru.
Matt K
45

Terkadang margin-top dapat menyebabkan masalah desain:

http://www.w3.org/TR/CSS2/box.html#collapsing-margins

Jadi, saya sarankan buat "kelas margin-bawah" bukan "kelas margin-top" dan terapkan pada item sebelumnya.

Jika Anda menggunakan Bootstrap mengimpor KURANG file Bootstrap mencoba mendefinisikan kelas margin-bottom dengan ruang Tema Bootstrap proporsional:

.margin-bottom-xs {margin-bottom: ceil(@line-height-computed / 4);}  
.margin-bottom-sm {margin-bottom: ceil(@line-height-computed / 2);} 
.margin-bottom-md {margin-bottom: @line-height-computed;}
.margin-bottom-lg {margin-bottom: ceil(@line-height-computed * 2);}  
kurroman
sumber
33

Saya menambahkan kelas-kelas ini ke stylesheet bootstrap saya

.voffset  { margin-top: 2px; }
.voffset1 { margin-top: 5px; }
.voffset2 { margin-top: 10px; }
.voffset3 { margin-top: 15px; }
.voffset4 { margin-top: 30px; }
.voffset5 { margin-top: 40px; }
.voffset6 { margin-top: 60px; }
.voffset7 { margin-top: 80px; }
.voffset8 { margin-top: 100px; }
.voffset9 { margin-top: 150px; }

Contoh

<div class="container">
  <div class="row voffset2">
    <div class="col-lg-12">
      <p>
        Vertically offset text.
      </p>
    </div>
  </div>
</div>
srmilon
sumber
27

Saya menggunakan kelas-kelas ini untuk mengubah margin teratas:

.margin-top-05 { margin-top: 0.5em; }
.margin-top-10 { margin-top: 1.0em; }
.margin-top-15 { margin-top: 1.5em; }
.margin-top-20 { margin-top: 2.0em; }
.margin-top-25 { margin-top: 2.5em; }
.margin-top-30 { margin-top: 3.0em; }

Ketika saya membutuhkan elemen untuk memiliki spasi 2em dari elemen di atas saya menggunakannya seperti ini:

<div class="row margin-top-20">Something here</div>

Jika Anda memilih piksel maka ubah em ke px agar sesuai keinginan Anda.

Hexodus
sumber
6
Ide bagus, tapi saya abstraksi angka-angkanya, karena terlalu spesifik. Jika Anda tetap menggunakan abstraksi seperti s, m, l, xl, xxl, dll, Anda dapat mengubah ukuran melalui css tanpa harus mengubah nama dalam template.
Mike Purcell
1
@ MikePurcell Pemikiran yang bagus dan mungkin solusi yang tepat untuk Anda. Tapi saya lebih suka cara yang lebih tepat untuk mendefinisikan margin. Menggunakan em, bukannya px memberi saya cara longgar untuk mencapainya tanpa terlalu spesifik.
Hexodus
3
Apa <div class="row margin-top-20">kelebihannya <div class"row" style="margin-top: 2.0em">?
icc97
@ icc97 Pada dasarnya, pisahkan masalah, tetapi di sini Anda dapat melihat pendapat lain: stackoverflow.com/a/2612494/1683224 .
Wiley Marques
@WileyMarques Itu benar untuk kelas bernama eg "top-buffer" (seperti dalam jawaban yang diterima), tetapi tidak masuk akal untuk kelas bernama margin-top-20. Kecuali Anda senang untuk margin-top-20 benar-benar menambahkan sesuatu selain dari 2 em padding, yang hanya akan membingungkan.
thelem
4

Bootstrap 4 alpha, untuk margin-top: singkatan nama kelas CSS mt-1, mt-2 (mt-lg-5, mt-sm-2) sama untuk bagian bawah, kanan, kiri, dan Anda juga memiliki kelas otomatis ml- mobil

    <div class="mt-lg-1" ...>

Unit dari 1ke 5: dalam variables.scss yang berarti jika Anda mengatur mt-1 memberikan .25rem dari margin atas.

$spacers: (
  0: (
    x: 0,
    y: 0
  ),
  1: (
    x: ($spacer-x * .25),
    y: ($spacer-y * .25)
  ),
  2: (
    x: ($spacer-x * .5),
    y: ($spacer-y * .5)
  ),
  3: (
    x: $spacer-x,
    y: $spacer-y
  ),
  4: (
    x: ($spacer-x * 1.5),
    y: ($spacer-y * 1.5)
  ),
  5: (
    x: ($spacer-x * 3),
    y: ($spacer-y * 3)
  )
) !default;

baca lebih lanjut di sini

https://v4-alpha.getbootstrap.com/utilities/spacing/#horizontal-centering

Sherif SALEH
sumber
3

Tambahkan ke kelas ini di file .css:

.row {
    margin-left: -20px;
    *zoom: 1;
    margin-top: 50px;
}

atau buat kelas baru dan tambahkan ke elemen

.rowSpecificFormName td {
    margin-top: 50px;
}
Nielsen Ramon
sumber
7
uhmmmmm saya tidak suka totouch the css, bagaimana jika saya perlu baris tanpa margin di halaman lain?
itsme
Anda dapat membuat kelas baru .rowSpecificForm
Nielsen Ramon
2
Tetapi tidak ada kelas css yang ditentukan untuk hanya 'margin-top' di Twitter Bootstrap.
Nielsen Ramon
aneh mereka tidak menetapkan beberapa kelas forspacing secara vertikal, saya perlu menambahkan mereka tidak ada solusi lain: /, terima kasih Nielsen
itsme
8
ingat cascade CSS, jadi Anda tidak perlu mengedit bootstrap.css.
ONOZ
1

Jika Anda ingin mengubah hanya pada satu halaman, tambahkan aturan gaya berikut:

 #myCustomDivID .row {
     margin-top:20px;
 }
fredyfx
sumber
1

Di Bootstrap 4 alpha + Anda dapat menggunakan ini

class margin-bottom-5

Kelas-kelas tersebut dinamai menggunakan format: {property}-{sides}-{size}

Al Quarashi
sumber
1
just take a new class beside every row and apply css of margin-top: 20px;
here is the code below
<style>
  .small-top
   {
     margin-top: 25px;  
   }
</style>    
<div class="row small-top">
   <div class="col-md-12">
   </div>
 </div>
shiva krishna
sumber
Silakan tambahkan penjelasan untuk jawaban Anda. Menjawab tanpa penjelasan tidak ada gunanya.
ADreNaLiNe-DJ
1

Bootstrap3

CSS (khusus selokan, tanpa margin sekitar):

.row.row-gutter {
  margin-bottom: -15px;
  overflow: hidden;
}
.row.row-gutter > *[class^="col"] {
  margin-bottom: 15px;
}

CSS (margin yang sama sekitar, 15px / 2):

.row.row-margins {
  padding-top: 7px; /* or margin-top: 7px; */
  padding-bottom: 7px; /* or margin-bottom: 7px; */
}
.row.row-margins > *[class^="col"] {
  margin-top: 8px;
  margin-bottom: 8px;
}

Pemakaian:

<div class="row row-gutter">
    <div class="col col-sm-9">first</div>
    <div class="col col-sm-3">second</div>
    <div class="col col-sm-12">third</div>
</div>

(dengan SASS atau KURANG 15px bisa menjadi variabel dari bootstrap)

Isometriq
sumber
1
<div class="row row-padding">

kode sederhana

Harshvardhan Singh Baghel
sumber
1
menggunakan bootstrap - 4 Anda dapat menambahkan kelas ini untuk membuat jarak antar baris
Harshvardhan Singh Baghel
0

Anda dapat menambahkan kode ini:

[class*="col-"] {
    padding-top: 1rem;
    padding-bottom: 1rem;
}
Tarak_bz
sumber
0

Jika Anda menggunakan BootStrap 3.3.7, Anda dapat menggunakan perpustakaan open source bootstrap-spacer via NPM

npm install bootstrap-spacer

atau Anda dapat mengunjungi halaman github:

https://github.com/chigozieorunta/bootstrap-spacer

Berikut adalah contoh cara ini bekerja ke baris spasi menggunakan kelas .row-spacer:

<div class="row row-spacer">
    <div class="col-md-4">
    </div>
    <div class="col-md-4">
    </div>
    <div class="col-md-4">
    </div>
</div>

<div class="row row-spacer">
    <div class="col-md-4">
    </div>
    <div class="col-md-4">
    </div>
    <div class="col-md-4">
    </div>
</div>

Jika Anda membutuhkan spasi di antara kolom, Anda juga bisa menambahkan kelas .row-col-spacer:

<div class="row row-col-spacer">
    <div class="col-md-4">
    </div>
    <div class="col-md-4">
    </div>
    <div class="col-md-4">
    </div>
</div>

Dan Anda juga dapat menggabungkan berbagai kelas .row-spacer & .row-col-spacer bersama-sama:

<div class="row row-spacer row-col-spacer">
    <div class="col-md-4">
    </div>
    <div class="col-md-4">
    </div>
    <div class="col-md-4">
    </div>
</div>
Chigozie Orunta
sumber
1
Saya menyarankan agar tidak menambahkan ketergantungan untuk 40 baris css
Andrew Diamond
-3

Trik saya. Tidak begitu bersih, tetapi bekerja dengan baik untuk saya

<p>&nbsp;</p>
asiniy
sumber