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.