[css] Twitter Bootstrap 3을 사용하여 열 중심

Twitter Bootstrap 3 의 컨테이너 (12 열) 내에서 한 열 크기의 div를 가운데에 배치하려면 어떻게합니까?

.centered {
  background-color: red;
}
<body class="container">
  <div class="col-lg-1 col-offset-6 centered">
    <img data-src="holder.js/100x100" alt="" />
  </div>
</body>

컨테이너 내에서 div클래스 .centered를 중심으로 하는을 원합니다 . 여러 개가있는 경우 행을 사용할 수 div있지만 지금 div은 컨테이너 내에서 하나의 열 크기 (12 열)를 원합니다 .

또한 의도가 div반 으로 상쇄하지 않기 때문에 위의 접근 방식이 충분하다는 것을 확신하지 못합니다 . 여유 공간 divdiv축소 의 내용 에 비례 하여 여유 공간이 필요하지 않습니다 . div 외부의 공간을 균등하게 분배하기 위해 비우고 싶습니다 (컨테이너 너비가 하나의 열과 같아 질 때까지 축소).



답변

<div>부트 스트랩 3에서 열의 중심을 맞추는 방법에는 두 가지가 있습니다 .

접근법 1 (오프셋) :

첫 번째 접근 방식은 부트 스트랩 자체의 오프셋 클래스를 사용하므로 마크 업을 변경하거나 추가 CSS를 요구하지 않습니다. 핵심은 오프셋을 나머지 행 크기의 절반과 동일하게 설정하는 것 입니다. 예를 들어, 크기가 2 인 열은 오프셋 5를 추가하여 중심이됩니다 (12-2)/2.

마크 업에서 이것은 다음과 같습니다.

<div class="row">
    <div class="col-md-2 col-md-offset-5"></div>
</div>

이제이 방법에는 명백한 단점이 있습니다. 그것은 단지도 열 크기에 작동하는 , 그래서 단지 .col-X-2, .col-X-4, col-X-6, col-X-8, 및 col-X-10지원됩니다.


접근법 2 (구 margin:auto)

입증 된 기술 을 사용하여 열 크기중앙에 맞출 수 있습니다margin: 0 auto; . Bootstrap의 그리드 시스템에 의해 추가 된 플로팅을 처리하면됩니다. 다음과 같은 사용자 정의 CSS 클래스를 정의하는 것이 좋습니다.

.col-centered{
    float: none;
    margin: 0 auto;
}

이제 모든 화면 크기에서 모든 열 크기에 추가 할 수 있으며 Bootstrap의 반응 형 레이아웃과 완벽하게 작동합니다.

<div class="row">
    <div class="col-lg-1 col-centered"></div>
</div>

참고 : 두 가지 기술을 모두 사용하면 .row요소를 건너 뛸 수 있고 열을 가운데로 배치 .container할 수는 있지만 컨테이너 클래스의 패딩으로 인해 실제 열 크기에는 약간의 차이가 있습니다.


최신 정보:

v3.0.1 부트 스트랩에는를 center-block사용 margin: 0 auto하지만 이름이없는 내장 클래스 float:none가 있으므로 그리드 시스템에서 작동하도록 CSS에 추가 할 수 있습니다.


답변

의 선호하는 방법 열을 중심으로는 “오프셋”을 사용하는 것입니다 (예 : col-md-offset-3)

부트 스트랩 3.x 중심 예제

위해 요소를 중심으로 하는이 center-block 헬퍼 클래스 .

텍스트 (및 인라인 요소) text-center중앙에 배치 하는 데 사용할 수도 있습니다 .

데모 : http://bootply.com/91632

편집 -주석에서 언급했듯이center-block열 내용 및display:block요소에서는 작동하지만col-*Bootstrap은을 사용하기 때문에열 자체 (div)에서는 작동하지 않습니다float.


2018 업데이트

이제 Bootstrap 4 에서 중심 설정 방법이 변경되었습니다.

  • text-center여전히 display:inline요소에 사용됩니다
  • mx-autocenter-block중심 display:block요소로 대체
  • offset-* 또는 mx-auto 그리드 열을 중앙에 배치하는 데 사용할 수 있습니다

mx-auto(자동 X 축 마진) 중앙 것 display:block또는 display:flex요소가 한정된 폭 ( %, vw, px, 등). Flexbox는 그리드 열에 기본적 으로 사용 되므로 다양한 flexbox 센터링 방법도 있습니다.

데모 부트 스트랩 4 수평 센터링

BS4의 수직 센터링에 대해서는 https://stackoverflow.com/a/41464397/171456을 참조 하십시오.


답변

이제 Bootstrap 3.1.1이 작업하고 있으며이 .center-block도우미 클래스는 열 시스템에서 작동합니다.

부트 스트랩 3 헬퍼 클래스 센터 .

이 jsfiddle 데모를 확인하십시오 .

<div class="container">
    <div class="row">
        <div class="center-block">row center-block</div>
    </div>
    <div class="row">
        <div class="col-md-6 brd">
            <div class="center-block">1 center-block</div>
        </div>
        <div class="col-md-6 brd">
            <div class="center-block">2 center-block</div>
        </div>
    </div>
</div>
<div class="row">
    <div class="col-xs-2 col-center-block">row col-xs-2 col-center-block</div>
</div>

헬퍼 클래스 센터

col-center-block도우미 클래스를 사용하여 행 열 중심 .

.col-center-block {
    float: none;
    display: block;
    margin: 0 auto;
    /* margin-left: auto; margin-right: auto; */
}


답변

사용자 정의 CSS 파일에 다음을 추가하기 만하면됩니다. 부트 스트랩 CSS 파일을 직접 편집하는 것은 권장되지 않으며 CDN 사용 기능을 취소합니다 .

.center-block {
    float: none !important
}

왜?

부트 스트랩 CSS (버전 3.7 이하)는 margin : 0 auto; 그러나 크기 컨테이너의 float 속성으로 재정의됩니다.

PS :

이 클래스를 추가 한 후에는 올바른 순서로 클래스를 설정하는 것을 잊지 마십시오.

<div class="col-md-6 center-block">Example</div>


답변

부트 스트랩 3 에는 이제이 클래스가 내장되어 있습니다..center-block

.center-block {
  display: block;
  margin-left: auto;
  margin-right: auto;
}

여전히 2.X를 사용하고 있다면 CSS에 추가하십시오.


답변

가운데 열에 대한 나의 접근 방식 display: inline-block은 열과 text-align: center컨테이너 부모에 사용하는 것입니다.

CSS 클래스 ‘centered’를에 추가하면 row됩니다.

HTML :

<div class="container-fluid">
  <div class="row centered">
    <div class="col-sm-4 col-md-4">
        Col 1
    </div>
    <div class="col-sm-4 col-md-4">
        Col 2
    </div>
    <div class="col-sm-4 col-md-4">
        Col 3
    </div>
  </div>
</div>

CSS :

.centered {
   text-align: center;
   font-size: 0;
}
.centered > div {
   float: none;
   display: inline-block;
   text-align: left;
   font-size: 13px;
}

JSFiddle : http://jsfiddle.net/steyffi/ug4fzcjd/


답변

부트 스트랩 버전 3에는 .text-center 클래스가 있습니다.

이 클래스를 추가하십시오.

text-center

이 스타일을 간단히로드합니다 :

.text-center {
    text-align: center;
}

예:

<div class="container-fluid">
  <div class="row text-center">
     <div class="col-md-12">
          Bootstrap 4 is coming....
      </div>
  </div>
</div>