트위터 부트 스트랩-행 사이에 상단 공간 추가


483

class="row"트위터 부트 스트랩 프레임 워크를 사용하여 요소 에 여백을 추가하는 방법은 무엇입니까?

답변:


801

Twitter 부트 스트랩에서 행을 편집하거나 재정의하는 것은 좋지 않습니다. 이는 페이지 스캐 폴딩의 핵심 부분이므로 맨 위 여백이없는 행이 필요하기 때문입니다.

이를 해결하기 위해 필요한 표준 마진을 추가하는 새로운 클래스 "top-buffer"를 작성하십시오.

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

그런 다음 상단 여백이 필요한 행 div에서 사용하십시오.

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

45
기본 행을 편집하는 것은 프레임 워크에 적합하지 않으며 새 클래스는 행 클래스를 보완해야합니다 ... 미묘한 차이점이지만 Twitter 부트 스트랩에서 행에는 특정 페이지 레이아웃 역할이 있습니다. 어쨌든, 나는 단지 돕기 위해 노력하고 있습니다. 제 해결책은 문제에 대한 해결책입니다.
Acyra

11
이 답변은 약간 다릅니다. IMHO. 이 클래스는 "클래스 스타일 이름을 지정하여 HTML을 더 쉽게 읽을 수 있도록"을 포함하고 rowSpecificForName 대신 HTML에서 margin-top을 읽을 수 있으므로 더욱 유용합니다. 이 답변은 트위터 부트 스트랩 패턴과 더 일치합니다.
Dean Hiller

2
그들은 특정한 수직 간격 클래스를 Bootstrap 4에 추가 할 것입니다 : github.com/twbs/bootstrap/issues/4286
icc97

2
이 의견에서 배운 것은 개발자가 매우 의견이 많고 어떤 사람들은 2 + 3 = 5를 선호하고 다른 사람들은 3 + 2 = 5를 선호한다는 것입니다. 계속 ...
Fabio S.

3
@FabioS. 알아야 할 것은 부트 스트랩과 같은 프레임 워크의 경우 원시 코드를 편집하거나 덮어 쓰는 것이 좋지 않다는 것입니다. 시나리오는 끝이 없지만 여기 몇 가지 예가 있습니다. a.) 덮어 쓰기-.row 클래스를 덮어 쓰는 경우 이제 프로젝트를 진행하고 여백을받지 않아야하는 행에 추가 클래스를 추가해야합니다. b) 네이티브 코드 편집-작업중인 프로젝트를 상속하기를 원합니다. bootstrap4로 이동; 웁스! 아무것도 보이지 않습니다!? 이제 부트 스트랩 3 파일을 통해 이전 개발자가 변경 한 내용을 찾아야하는 부담이 있습니다.
peroija

176

좋아, 그때 일어난 일을 알려주기 위해 Acyra가 위에서 말한 것처럼 새로운 클래스를 사용하여 수정했습니다.

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

더 나은 반응을 위해 예를 들어 : D margin-top:7%대신 추가 할 수 있습니다5px


13
이 솔루션이 허용되는 솔루션보다 훨씬 우아하다고 생각합니다.
rdiaz82

72
동일합니다.
alexander

@alexander이지만 더 일반적입니다.
Ejaz

6
.top-buffer { margin-top:20px; }와는 어떻게 다른 .top30 { margin-top:30px; }가요? 글쎄요, 어떤 개발자의 입장에서도 : 그것은 동일합니다. 유스 케이스에 맞는 adjustemts는 여기에 포함되지 않습니다. OP가 자신의 질문에 대답 한 경우 특히 그렇지 않습니다.
알렉산더

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에서 양식 그룹이 제거 되었습니까?
Z. 쿨라

3
아니요, form-group여전히 존재 하지만 작업을 수행 할 수 있고 더 많은 옵션이있는 여백 / 패딩에 대한 특수 클래스가 추가되었습니다.
Buksy

Bootstrap V 4에서 이에 대한 여러 변경 사항이 있습니까? 나는 지금 4의 버전에 있고 mt-3그렇게 사용되지 않습니다form-group
Nick Schwaderer

작동해야 합니다. 프로젝트에 연결된 부트 스트랩 CSS에 ".mt-3"클래스 정의가 포함되어 있는지 확인하십시오.
Buksy

82

들면 부트 스트랩 4 간격하여 적용되어야

속기 유틸리티 클래스

다음 형식으로 :

{property} {sides}-{size}

어디 속성 중 하나입니다 :

  • m-여백을 설정하는 클래스
  • p-패딩을 설정하는 클래스

어디 측면 중 하나입니다 :

  • t-margin-top 또는 padding-top을 설정하는 클래스
  • b-여백 하단 또는 패딩 하단을 설정하는 클래스
  • l-왼쪽 여백 또는 왼쪽 여백을 설정하는 클래스
  • r-오른쪽 여백 또는 오른쪽 여백을 설정하는 클래스
  • x-* -left 및 * -right를 모두 설정하는 클래스
  • y-* -top 및 * -bottom을 모두 설정하는 클래스
  • 공백-요소의 4면 모두에 여백 또는 패딩을 설정하는 클래스의 경우

어디 크기 중 하나입니다 :

  • 0-여백 또는 패딩을 0으로 설정하여 제거하는 클래스
  • 여백 또는 패딩을 $ spacer * .25로 설정하는 클래스의 경우 1-기본적으로
  • 여백 또는 패딩을 $ spacer * .5로 설정하는 클래스의 경우 2-기본적으로
  • 여백 또는 패딩을 $ spacer로 설정하는 클래스의 경우 3-기본적으로
  • 여백 또는 패딩을 $ spacer * 1.5로 설정하는 클래스의 경우 4-(기본적으로)
  • 여백 또는 패딩을 $ spacer * 3으로 설정하는 클래스의 경우 5-기본적으로
  • auto-여백을 auto로 설정 한 클래스

따라서 다음 중 하나를 수행해야합니다.

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

자세한 설명 은 문서 를 읽으십시오 . 여기에 실례를 들어보십시오 .


3
이것은 Bootstrap 4 릴리스와 함께 지금 받아 들여질만한 대답이어야합니다.이 내장 클래스는 새 클래스를 만들 필요없이 제공됩니다.
Matt K

45

때로는 마진이 설계 문제를 일으킬 수 있습니다.

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

따라서 "여백 최상위 클래스"대신 "여백 하위 클래스"를 만들어 이전 항목에 적용하는 것이 좋습니다.

부트 스트랩 가져 오기 LESS 부트 스트랩 파일을 사용하는 경우 비례 부트 스트랩 테마 공간으로 여백 하단 클래스를 정의하십시오.

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

픽셀을 선호한다면 em을 px로 바꿔서 사용하십시오.


6
좋은 생각이지만 숫자가 너무 구체적이므로 추상화합니다. s, m, l, xl, xxl 등과 같은 추상화를 고수하면 템플릿의 이름을 변경하지 않고도 CSS를 통해 크기를 변경할 수 있습니다.
Mike Purcell

1
@MikePurcell 좋은 생각이며 올바른 솔루션 일 수 있습니다. 그러나 나는 여백을 정의하는보다 정확한 방법을 선호합니다. px 대신 em을 사용하면 너무 구체적이지 않고 느슨한 방법을 얻을 수 있습니다.
Hexodus

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이라는 클래스에는 적합하지 않습니다. margin-top-20이 실제로 2ems 이외의 패딩을 추가하는 것이 행복하지 않으면 혼란 스럽습니다.
thelem


4

margin-top의 부트 스트랩 4 알파 : 짧은 CSS 클래스 이름 mt-1, mt-2 (mt-lg-5, mt-sm-2)는 오른쪽, 왼쪽, 왼쪽과 동일하며 자동 클래스 ml- 자동

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

단위는 출신 15: 당신은 MT-1이 여백 상단의 .25rem을 제공 설정하면 수단 variables.scss에.

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

새로운 클래스 .rowSpecificForm
Nielsen Ramon을

2
그러나 Twitter Bootstrap에는 'margin-top'에 대해서만 정의 된 CSS 클래스가 없습니다.
Nielsen Ramon

/ 감사 닐슨 : 이상한 그들은, 내가 다른 해결책이없는 추가해야 수직 forspacing 몇 가지 클래스 잘 살고하지 않았다
itsme가

8
CSS 캐스케이드를 기억하므로 bootstrap.css를 편집 할 필요가 없습니다.
ONOZ

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

부트 스트랩 3

CSS (여백없이 여백 만) :

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

CSS (동일한 여백 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;
}

용법:

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

(SAS 또는 LESS 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에 대한 의존성을 추가하지 말 것을 권고한다
Andrew Diamond

-3

내 트릭. 너무 깨끗하지는 않지만 잘 작동합니다.

<p>&nbsp;</p>
당사 사이트를 사용함과 동시에 당사의 쿠키 정책개인정보 보호정책을 읽고 이해하였음을 인정하는 것으로 간주합니다.
Licensed under cc by-sa 3.0 with attribution required.