[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
반 으로 상쇄하지 않기 때문에 위의 접근 방식이 충분하다는 것을 확신하지 못합니다 . 여유 공간 div
과 div
축소 의 내용 에 비례 하여 여유 공간이 필요하지 않습니다 . 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
)
위해 요소를 중심으로 하는이 center-block
헬퍼 클래스 .
텍스트 (및 인라인 요소) text-center
를 중앙에 배치 하는 데 사용할 수도 있습니다 .
편집 -주석에서 언급했듯이center-block
열 내용 및display:block
요소에서는 작동하지만col-*
Bootstrap은을 사용하기 때문에열 자체 (div)에서는 작동하지 않습니다float
.
2018 업데이트
이제 Bootstrap 4 에서 중심 설정 방법이 변경되었습니다.
text-center
여전히display:inline
요소에 사용됩니다mx-auto
center-block
중심display:block
요소로 대체offset-*
또는mx-auto
그리드 열을 중앙에 배치하는 데 사용할 수 있습니다
mx-auto
(자동 X 축 마진) 중앙 것 display:block
또는 display:flex
요소가 한정된 폭 ( %
, vw
, px
, 등). Flexbox는 그리드 열에 기본적 으로 사용 되므로 다양한 flexbox 센터링 방법도 있습니다.
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>