Bootstrap4를 통해 열 정렬


80

데스크톱과 모바일에서 서로 다른 방식으로 주문하려는 3 개의 열이 있습니다. 현재 내 띠는 다음과 같습니다.

<div class="row">
  <div class="col-xs-3 col-md-6">
    1
  </div>
  <div class="col-xs-3 col-md-6">
    2
  </div>
  <div class="col-xs-6 col-md-12">
    3
  </div>
</div>

모바일보기에서 다음 출력을 원합니다.

1-3-2

불행히도 나는 Bootstrap 4 의 .col-md-push-*.col-md-pull-*클래스로 이것을 해결하는 방법을 얻지 못합니다 .



col-xx-push- 및 col-xx-pull- 은 부트 스트랩 3과 동일합니다. 'md'및 1-2 초과, 다른 행 3 및 'sm'및 1-3-2 미만에 대한 그리드를 원하십니까? ?
tmg

답변:


139

2018-최신 부트 스트랩 4로이 질문을 다시 살펴 봅니다.

반응 형 주문 클래스는 지금 order-first, order-last그리고 order-0-order-12

부트 스트랩 4 푸시 클래스는 지금 push-{viewport}-{units}pull-{viewport}-{units}xs-중위가 제거되었습니다. 모바일 / xs에서 원하는 1-3-2 레이아웃을 얻으려면 : Bootstrap 4 push pull demo (이것은 4.0 이전 베타에서만 작동합니다)


부트 스트랩 4.1 이상

Bootstrap 4는 flexbox이므로 열 순서를 쉽게 변경할 수 있습니다. COLS은에서 주문할 수 있습니다 order-1order-12응답하여 같은, order-md-12 order-2(최종 md에, 두번째 xs부모를 기준으로) .row.

<div class="container">
    <div class="row">
        <div class="col-3 col-md-6">
            <div class="card card-body">1</div>
        </div>
        <div class="col-6 col-md-12 order-2 order-md-12">
            <div class="card card-body">3</div>
        </div>
        <div class="col-3 col-md-6 order-3">
            <div class="card card-body">2</div>
        </div>
    </div>
</div>

데모 : 클래스를 사용하여 순서 변경order-*

데스크탑 (큰 화면) : 여기에 이미지 설명 입력

모바일 (작은 화면) : 여기에 이미지 설명 입력

flexbox 방향 유틸리티를 사용하여 열 순서를 변경할 수도 있습니다 ...

<div class="container">
    <div class="row flex-column-reverse flex-md-row">
        <div class="col-md-8">
            2
        </div>
        <div class="col-md-4">
            1st on mobile
        </div>
    </div>
</div>

데모 : Flexbox 방향으로 부트 스트랩 4.1 변경 순서


이전 버전 데모
데모-알파 6
데모-베타 (3)

더 많은 Bootstrap 4.1+ 주문 데모보기


관련 항목 :
push / pull 및 col-md-12를 사용하는
Bootstrap 4의 열 순서 Bootstrap 4 열 순서 변경

ACB ABC


@Alireza- order-*클래스는 여러 번 사용할 수 없습니다. 그것이 작동하는 방식입니다. 문서에서 .. "이 클래스는 응답 성이 있으므로 중단 점 (예 : .order-1.order-md-2)으로 순서를 설정할 수 있습니다. 5 개 그리드 계층 모두에서 1부터 12까지 지원 포함."
Zim

@Zim 그래서 order-2 order-md-12수업을 함께 사용할 수 없습니까?
Alireza

아니요, 함께 사용할 있습니다.
Zim

@Zim order-md-1 order-sm-2order-1 order-sm-2작동하지 않습니다. 수동으로하고 있습니다
Alireza

codeply.com/go/23VFxwWTdP 위에 표시된 버전을 사용하는 경우 작동합니다 . 또한 내 대답이 적용되는 원래 질문과 가장 다를 가능성이 가장 큰 달성하려는 작업이 무엇인지 모르겠습니다. 열은 같은 행에서 서로 상대적임을 기억하십시오.
Zim

22

이것은 CSS "Order"속성과 미디어 쿼리로도 가능합니다.

이 같은:

@media only screen and (max-width: 768px) {
    #first {
        order: 2;
    }
    #second {
        order: 4;
    }
    #third {
        order: 1;
    }
    #fourth {
        order: 3;
    }
}

CodePen 링크 : https://codepen.io/preston206/pen/EwrXqm


모바일 용 부트 스트랩 클래스로 주문할 수 없었습니다. 감사합니다
Xavier Ojeda Aguilar

3

이것도 작동합니다.

<div class="container">
            <div class="row">
                <div class="col-4 col-sm-4 col-md-6 order-1">
                    1
                </div>
                <div class="col-4 col-sm-4  col-md-6 order-3">
                    2
                </div>
                <div class="col-4 col-sm-4  col-md-12 order-2">
                    3
                </div>
            </div>
          </div>

2

저는 Bootstrap 3을 사용하고 있으므로 Bootstrap 4를 수행하는 더 쉬운 방법이 있는지 모르겠지만이 CSS가 작동합니다.

.pull-right-xs {
    float: right;
}

@media (min-width: 768px) {
   .pull-right-xs {
      float: left;
   }
}

... 그리고 두 번째 열에 클래스를 추가합니다.

<div class="row">
    <div class="col-xs-3 col-md-6">
        1
    </div>
    <div class="col-xs-3 col-md-6 pull-right-xs">
        2
    </div>
    <div class="col-xs-6 col-md-12">
        3
    </div>
</div>

편집하다:

오 ... 위에 쓴 내용이 정확히. Bootstrap 4의 pull-xs-right 클래스 : X 두 번째 열에 추가하면 완벽하게 작동합니다.


Ops ... 스타일 코드에 실수를 저질렀습니다. : X 지금 시도해보세요. 작동하지 않으면! important를 float에 추가하십시오.
Marek Kus

1
그것은 동일합니다. 저는 Bootsrap 4에서 .pull-xs-right 클래스로 작업했습니다.
Cray

-1

위의 재검토 된 답변에 제공된 코드에 설명 된대로 열 순서가 Bootstrap 4 베타에서 작동하지 않으므로 다음을 사용해야합니다 (codeply 4 Flexbox 주문 데모-에 제공된 알파 / 베타 링크에 표시된대로) 대답).

<div class="container">
<div class="row">
    <div class="col-3 col-md-6">
        <div class="card card-block">1</div>
    </div>
    <div class="col-6 col-md-12  flex-md-last">
        <div class="card card-block">3</div>
    </div>
    <div class="col-3 col-md-6 ">
        <div class="card card-block">2</div>
    </div>
</div>

그러나 "Flexbox 주문 데모-베타"는 알파 코드베이스로 이동하고 코드베이스를 베타로 변경 (및 실행)하면 div가 단일 열에 잘못 표시되지만 절단 및 codeply에서 코드를 붙여 넣는 것은 설명대로 작동합니다.


-4

모바일 주문으로 두 개의 다른 컨테이너를 수행하고 데스크톱 화면에서 숨길 수 있으며 다른 하나는 데스크톱 주문으로 수행하고 모바일 화면에서 숨길 수 있습니다.


2
작동하지만 불필요한 데이터 복제입니다. float 매개 변수를 조작하여이를 수행 할 수 있습니다 (다른 방법도 전파됨).
Marek Kus
당사 사이트를 사용함과 동시에 당사의 쿠키 정책개인정보 보호정책을 읽고 이해하였음을 인정하는 것으로 간주합니다.
Licensed under cc by-sa 3.0 with attribution required.