부트 스트랩 3-행 클래스가 컨테이너보다 넓은 이유는 무엇입니까?


116

방금 부트 스트랩 3을 사용하기 시작했습니다. 행 클래스가 어떻게 작동하는지 이해하는 데 어려움을 겪고 있습니다. 피할 수있는 방법이 있나요 padding-leftpadding-right?

<div class="row" style="background:#000000">           
  <div class="col-xs-4 .col-xs-offset-1">
    col
  </div>
  <div class="col-xs-2">
    col
  </div>
  <div class="col-xs-2">
    col
  </div>
  <div class="col-xs-2">
    col
  </div>
</div>

http://jsfiddle.net/petran/rdRpx/


@Adrift가 여전히 사실입니까? 제대로 작동하지 않는다는 뜻인지 잘 모르겠습니다. 왜냐하면 내가 사용 해왔고 제대로 작동하는 것 같기 때문입니다.
Cereal

1
@Cereal : 더 이상은 아닙니다. 이것은 v3.0.2 에서 추가 되었습니다
표류

3
부트 스트랩 행에는 -15px 왼쪽 및 오른쪽 여백이 있기 때문입니다.

아마도 당신의 문제는 아니지만 같은 유형의 문제를 가진 다른 사람들을 위해 : div에 클래스 속성이 하나만 있는지 확인하십시오. 실수로 두 배로 늘리고 동일한 문제가 발생했습니다.
The One True Colter

답변:


151

모든 그리드 시스템에는 각 기둥 사이에 거터가 있습니다. Bootstrap의 시스템은이 거터를 만들기 위해 각 열의 왼쪽과 오른쪽에 15px 패딩을 설정합니다.

문제는 첫 번째 열의 왼쪽에 절반의 거터가 없어야하고 마지막 열의 오른쪽에 절반의 거터가 있어서는 안된다는 것입니다. 일부 그리드 시스템처럼 해당 열에 일종의 .first또는 .last클래스를 사용하는 대신 .row열 패딩과 일치하는 음수 여백을 갖도록 클래스를 설정합니다 . 이렇게하면 첫 번째 열과 마지막 열의 거터가 "당겨져"동시에 더 넓어집니다.

.row사업부는 정말 그리드 열 이외의 홀드 아무것도 사용해서는 안됩니다. 그렇다면 바이올린에서 분명한 것처럼 모든 열을 기준으로 콘텐츠가 이동하는 것을 볼 수 있습니다.

최신 정보:

내가 답변 한 후에 질문을 수정 했으므로 지금 질문하는 질문에 대한 답변은 다음과 같습니다 . .container첫 번째에 수업 추가 <div>. 작업 예를 참조하십시오 .


2
그리드 열은 여백이 아닌 패딩으로 구분됩니다 (BS3에서)
표류

3
큰! 그것은 모든 넘쳐나는 내용을 설명합니다.
Rutwick Gangurde

27

부트 스트랩 3.3.7에서는 .row를 .container-fluid로 래핑하여이 문제가 해결되었습니다.


이것은 처음에는 그렇지 않다고 생각했지만 너비를 줄이는 개발자의 웹 콘솔을 열어 두었 기 때문에 효과가 있었지만 분명히 엉망이되었습니다. 사용 .container-fluid은 여기에서도 제안되었습니다 : stackoverflow.com/a/23616447/5272567
Matthias

래핑 div가 위치에있을 때도 작동합니다 absolute. 힌트 주셔서 감사합니다
InsOp

나는이 대답을 여러 번 ... : 최대 - 투표를 할 수 있다면
rony36

Bootstrap 4에 대한 동일한 수정 사항
Rob L

19

유사한 게시물에 대한 아래의 내 답변을 참조하십시오.

부트 스트랩 .row의 기본 margin-left가 -30px 인 이유는 무엇입니까?

기본적으로 "row"대신 "clearfix"를 사용합니다. 음의 여백을 제외하고 "행"과 정확히 동일합니다.


2
이러한 클래스는 시각적으로 수행하는 것처럼 보이지만 두 가지 다른 작업을 수행합니다 .Clear는 반응 형 상황에서 유연하지 않으며 그리드 시스템에서는 .row의 동작이 정확합니다.
Todd Baur 2014

이것은 래퍼 외부의 넘쳐나는 콘텐츠를 해결합니다.
Bhojendra Rauniyar 2015 년

그러나 더 좋은 방법은 컨테이너로 행을 감싸는 것입니다.
Bhojendra Rauniyar 2015 년

최고의 ASWER! 쪽으로!
Anderson Bressane

18

컨테이너 클래스 내부에서 행 클래스를 사용했지만 여전히 문제가있었습니다. 내가 추가 할 때 margin-left: auto; margin-right: auto;받는 .row클래스는 벌금을했다.


8
이것은 매력처럼 작동했습니다! 부트 스트랩 4에 'mx-auto'클래스를 추가하면 오버플로 문제가 해결되었습니다.
Michelle M.

3

@Michelle M.은이 답변에 대한 전체 크레딧을 받아야합니다.
그녀는 댓글 중 하나에서 말했습니다.

부트 스트랩 4에 'mx-auto'클래스를 추가하면 오버플로 문제가 해결되었습니다.

다음 div과 같이 첫 번째 요소 를 업데이트해야합니다 .

<div class="row mx-auto" style="background:#000000">

모든 Nested-Rows에 대해이 작업을 수행 할 필요가 없습니다 (있는 경우). 수직 스크롤바를 피하려면 가장 바깥 쪽 (또는 행)에
추가 mx-auto하기 만하면 row됩니다.
Margins를 대체하는 "row"클래스를 추가하여 모든 부트 스트랩 행의 동작을 재정의하지 마십시오.


1

이 문제를 디버깅하는 미래의 개발자 :

부트 스트랩은 행 열의 패딩을 설정하므로 행의 내용이 컨테이너 외부에 나타나지 않아야합니다. 이 문제가 발생하고 col -... 클래스를 사용하여 부트 스트랩의 그리드 시스템을 올바르게 사용하고 있다면 열의 패딩을 재설정하는 추가 CSS가있을 가능성이 큽니다.


또는 이전 버전의 Bootstrap이 있습니다. 예를 들어 3.0.0은 VS2015와 함께 배포됩니다. github.com/twbs/bootstrap/issues/8959
Adventure
당사 사이트를 사용함과 동시에 당사의 쿠키 정책개인정보 보호정책을 읽고 이해하였음을 인정하는 것으로 간주합니다.
Licensed under cc by-sa 3.0 with attribution required.