Twitter Bootstrap - додайте простір між рядками


483

Як додати вершину поля до class="row"елементів, використовуючи рамки завантаження завантажувача?

Відповіді:


801

Редагування або переосмислення рядка у завантажувальній програмі Twitter - погана ідея, оскільки це основна частина скелета сторінки і вам знадобляться рядки без верхнього поля.

Щоб вирішити це, натомість створіть новий клас "топ-буфер", який додає необхідний стандартний запас.

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

А потім використовуйте його у рядках divs, де вам потрібен верхній запас.

<div class="row top-buffer"> ...

45
Редагування нативного рядка є неправильним для фреймворку, і новий клас повинен просто доповнити клас рядків ... це тонка різниця, але в Twitter Bootstrap рядок має певну роль у макеті сторінки. У всякому разі, я просто намагаюся допомогти, моє рішення є робочим для вирішення проблеми.
Acyra

11
ніяк, ці відповіді дещо відрізняються від ІМХО. Цей варіант є більш корисним, оскільки він містить "назву стилю вашого класу, щоб ваш HTML читався простіше", і ви можете читати маржинальну верхівку в HTML замість rowSpecificForName. Ця відповідь більш влучна з твіттерними моделями завантаження.
Дін Гіллер

2
Вони збираються додати конкретні класи вертикальних інтервалів у Bootstrap 4: github.com/twbs/bootstrap/isissue/4286
icc97

2
Все, що я дізнався з цих коментарів, - це те, що розробники дуже впевнені, а деякі віддають перевагу 2 + 3 = 5, а інші 3 + 2 = 5. Перехід до ...
Фабіо С.

3
@FabioS. Що слід дізнатися, це те, що для такої рамки, як Bootstrap, редагування власного коду або його перезапис - це погана ідея. Сценарії нескінченні, але ось кілька прикладів. а.) перезапис - якщо ви перезаписуєте клас .row, вам зараз потрібно пройти ваш проект і додати додатковий клас до рядків, які не повинні отримувати запас. перейти до bootstrap4; OOPS! Нічого не виглядає правильно! Тепер на вас лежить тягар перегляду файлу bootstrap 3, намагаючись знайти те, що на землі змінив попередній розробник.
peroija

176

Гаразд, щоб повідомити вам, що сталося тоді, я виправив за допомогою нових класів, як говорить Асіра вище:

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

коли я хочу, я роблю <div class="row top7"></div>

для кращого реагування ви можете додати margin-top:7%замість, 5pxнаприклад: D


13
Я відчуваю, що це рішення набагато елегантніше, ніж прийняте рішення.
rdiaz82

72
Це те саме.
Олександр

@alexander, але більш загальний.
Ejaz

6
Чим .top-buffer { margin-top:20px; }відрізняється від .top30 { margin-top:30px; }? Ну, з точки зору будь-якого розробника: Це те саме. Тут не враховуються коригувальні елементи для відповідного використання. Особливо ні, якщо ОП відповіла на власне запитання.
Олександр

2
Класичний верхній запас 17px; Дуже корисний.
adripanico

129

Завантаження 3

Якщо вам потрібно відокремити рядки в завантажувальному інструменті, ви можете просто скористатися .form-group. Це додає 15px поля в нижній частині рядка.

У вашому випадку, щоб отримати верх маржа, ви можете додати цей клас до попереднього .rowелемента

<div class="row form-group">

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

Завантаження 4

Можна використовувати вбудовані класи інтервалу

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

"T" у назві класу примушує його застосовуватися лише до "верхньої" сторони, є подібні класи для нижньої, лівої, правої. Число визначає розмір простору.


Чи була форма групи позбавлена ​​BS4?
З. Хулла

3
Ні, form-groupвсе ще присутній , але додано спеціальні класи для маржі / набивання, які можуть виконати роботу та мають більше варіантів.
Buksy

Чи було кілька змін до цього в Bootstrap V 4? Я зараз на версії 4, mt-3але не працює так, що використовуєтьсяform-group
Нік Швадерер

Він повинен працювати , перевірте, чи містить css bootstrap, який ви пов’язали зі своїм проектом, визначенням класу ".mt-3".
Buksy

82

Для Bootstrap 4 слід застосувати інтервал за допомогою

скорочені класи корисності

у такому форматі:

{властивість} {сторін} - {розмір}

Де майно є одним із:

  • m - для класів, які встановлюють маржу
  • p - для занять, які встановлюють набивання

Де сторони є одним із:

  • t - для класів, які встановлюють margin-top або padding-top
  • b - для класів, які встановлюють марж-дно або нижню частину
  • l - для класів, які встановлюють марж-ліворуч або padding-left
  • r - для класів, які встановлюють правий край або праворуч
  • x - для класів, які встановлюють і * -ліво і * -право
  • y - для класів, які встановлюють і * -top і * -bottom
  • blank - для класів, які встановлюють поле або підкладку з усіх 4 сторін елемента

Де розмір - один із:

  • 0 - для класів, які виключають запас або прокладку, встановивши його на 0
  • 1 - (за замовчуванням) для класів, які встановлюють поле або прокладку на $ spacer * .25
  • 2 - (за замовчуванням) для класів, які встановлюють поле або прокладку на $ spacer * .5
  • 3 - (за замовчуванням) для класів, які встановлюють поле або прокладку на $ spacer
  • 4 - (за замовчуванням) для класів, які встановлюють поле або прокладку на $ spacer * 1.5
  • 5 - (за замовчуванням) для класів, які встановлюють поле або накладку на $ spacer * 3
  • auto - для класів, які встановлюють поле для автоматичного

Тож вам слід зробити що-небудь із цього:

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

Прочитайте документи для отримання додаткових пояснень. Спробуйте живі приклади тут .


3
Це має бути прийнятою відповіддю вже з випуском Bootstrap 4. Поставляється з цими вбудованими класами, не потрібно створювати нових.
Метт К

45

Іноді margin-top може спричинити проблеми з дизайном:

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

Отже, я рекомендую створити "margin-bottom class" замість "margin-top класів" і застосувати їх до попереднього пункту.

Якщо ви використовуєте Bootstrap, імпортуючи менше файлів Bootstrap, спробуйте визначити найменші класи з пропорційними пробілами теми Bootstrap:

.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);}  

33

Я додав ці класи до моєї таблиці стилів завантаження

.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; }

Приклад

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

27

Я використовую ці класи для зміни верхньої межі:

.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; }

Коли мені потрібен елемент, щоб мати 2em проміжки від елемента вище, я використовую його так:

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

Якщо ви віддаєте перевагу пікселям, то змініть їх на px, щоб мати його по-своєму.


6
Гарна ідея, але я абстрагуюсь від цифр, оскільки вони занадто конкретні. Якщо ви дотримуєтесь абстракцій, таких як s, m, l, xl, xxl тощо, ви можете змінювати розміри за допомогою css, не змінюючи імен у шаблонах.
Майк Перселл

1
@MikePurcell Добре подумайте, і це може бути правильним рішенням для вас. Але я віддаю перевагу більш точний спосіб визначення маржі. Використання em замість px дає мені нелегкий спосіб досягти цього, не стаючи занадто конкретним.
Гексод

3
Які переваги від <div class="row margin-top-20">більш <div class"row" style="margin-top: 2.0em">?
icc97

@ icc97 В основному, окремі проблеми, але тут ви можете побачити інші думки: stackoverflow.com/a/2612494/1683224 .
Wiley Marques

@WileyMarques Це справедливо для класу, який називається, наприклад, "топ-буфер" (як у прийнятій відповіді), але не має сенсу для класу з іменем margin-top-20. Якщо ви не щасливі, що маржа-топ-20 насправді додасть щось інше, ніж 2ems прокладки, що просто заплутано.
thelem


4

Бутстрап 4 альфа, для поля верхньої частини: скорочені назви класів CSS mt-1, mt-2 (mt-lg-5, mt-sm-2) однаково для нижньої, правої, лівої, і у вас також є автоматичний клас ml- авто

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

Одиниці складаються з 1до 5: у змінних.scss, що означає, що якщо ви встановите mt-1, він дає .25rem верхньої межі.

$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;

читати детальніше тут

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


3

Додайте до цього класу у файлі .css:

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

або складіть новий клас і додайте його до елемента

.rowSpecificFormName td {
    margin-top: 50px;
}

7
uhmmmmm, мені не подобається торкатись css, що робити, якщо мені потрібні рядки без поля на інших сторінках?
itsme

Ви можете створити новий клас .rowSpecificForm
Nielsen Ramon

2
Але в Twitter Bootstrap немає визначеного класу css для лише "margin-top".
Нільсен Рамон

дивно, що вони не встановили кілька класів на вертикальну відстань, мені потрібно додати їх, немає іншого рішення: /, дякую Nielsen
itme

8
пам'ятайте CSS-каскади, тому вам ніколи не доведеться редагувати bootstrap.css.
ОНОЗ

1

Якщо ви хочете змінити лише одну сторінку, додайте таке правило стилю:

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

1

У Bootstrap 4 alpha + ви можете використовувати це

class margin-bottom-5

Класи названі у форматі: {property}-{sides}-{size}


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>

Будь ласка, додайте пояснення до своєї відповіді. Відповідати без пояснень марно.
ADreNaLiNe-DJ

1

Bootstrap3

CSS (лише жолоби, без поля):

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

CSS (рівні поля навколо, 15 пікселів / 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;
}

Використання:

<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>

(з SASS або менше 15px може бути змінною від завантажувальної програми)



0

Ви можете додати цей код:

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


0

Якщо ви використовуєте BootStrap 3.3.7, ви можете скористатись завантажувачем-спейсером бібліотеки з відкритим кодом через NPM

npm install bootstrap-spacer

або ви можете відвідати сторінку github:

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

Ось приклад того, як це працює для пробілів рядків за допомогою класу .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>

Якщо вам потрібні пробіли між стовпцями, ви також можете додати клас .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>

Ви також можете комбінувати різні класи .row-spacer & .row-col-spacer:

<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>

1
Я б радив не додавати залежність для 40 рядків css
Ендрю Діамант

Використовуючи наш веб-сайт, ви визнаєте, що прочитали та зрозуміли наші Політику щодо файлів cookie та Політику конфіденційності.
Licensed under cc by-sa 3.0 with attribution required.