부트 스트랩에서 열 고정 위치 만들기


83

Bootstrap을 사용하면 다른 .col-lg-9가 정상 위치 (페이지를 스크롤 할 수 있음) 인 동안 위치 : 고정 된 위치에 배치하려는 그리드 열 class = "col-lg-3"이 있습니다.

<div class="row">
    <div class="col-lg-3">
        Fixed content
    </div>
    <div class="col-lg-9">
        Normal scrollable content
    </div>

</div>

LifeHacker.com 의 왼쪽 열과 같은 방식으로 왼쪽 부분이 고정되어 있지만 페이지를 스크롤합니다.

부트 스트랩 v3.1.1을 사용합니다.


@Lowkase 요청마다 코드를 첨부했습니다.

1
주제가 "보류"에서 해제되기를 기다리고 있습니다. 그 동안 내 대답은 jsfiddle.net/dRbe4 에서 볼 수 있습니다 . 질문이 다시 열리면 더 잘 설명 할 수 있습니다.
Lowkase 2014

답변:


87
<div class="row">
    <div class="col-lg-3">
       <div class="affix">
           fixed position 
        </div>
    </div>
    <div class="col-lg-9">
       Normal data enter code here
    </div>
</div>

3
확실히 지금 선호하는 솔루션입니다!
스콧

12
이 작은 화면에서 제대로 작동하지 않습니다 오른쪽 사업부가 포함 된 왼쪽 COL 이상 누워 것 fixed사업부를
thefoxrocks

12
부트 스트랩 4 ?? 어떤 아이디어
PirateApp

22
Bootstrap 4에서 'affix'를 'sticky-top'으로 변경
Tacio Costa

3
정보 : Bootstrap은 Bootstrap 4.0에서 접미사 지원을 중단했습니다. 여기에 제안 된대로 'position : sticky'를 사용하십시오. getbootstrap.com/docs/4.1/migration/#components
Antoine Delia

50

, 이하 브의 대답 반복 단지 사용 position:fixed및 부트 스트랩 col-offset당신이 폭에 구체적으로 할 필요가 없습니다.

<div class="row">
    <div class="col-lg-3" style="position:fixed">
        Fixed content
    </div>
    <div class="col-lg-9 col-lg-offset-3">
        Normal scrollable content
    </div>
</div>

5
당신이 컬럼의 위치를 변경하는 경우이 작동하지 않습니다
didando8a

이것이 더 나은 해결책입니다! 완벽하게 작동하며 CSS가 필요하지 않습니다. @ didando8a 열 위치를 변경하면 col-lg-offset을 새 오프셋으로 변경하면됩니다.
Roy Shoa 2015

누군가 고정 된 열에 스크롤 기능이 필요한 경우 높이와 오버플로만 추가하면됩니다. 예 : style="position:fixed;height:100%;overflow-y:auto;".
Roy Shoa

7
) - @Roy "어떤 CSS가 필요하지 않습니다는"그래 그것은 그 바로 스타일 태그입니다
마이크 Furlender

4
이것이 내가 필요했던 것입니다! 오프셋 클래스는 부트 스트랩 4에서 다릅니다 (예 : offset-lg-3. getbootstrap.com/docs/4.0/layout/grid/#offsetting-columns
nickwesselman apr

29

여기 http://jsfiddle.net/dRbe4/ 솔루션에 따라 ,

<div class="row">
    <div class="col-lg-3 fixed">
        Fixed content
    </div>
    <div class="col-lg-9 scrollit">
        Normal scrollable content
    </div>

 </div>

완벽하게 작동하도록 일부 CSS를 수정했습니다.

.fixed {
        position: fixed;
        width: 25%;
}
.scrollit {
        float: left;
        width: 71%
}

솔루션을 공유해 주신 @Lowkase에게 감사드립니다.


10
width 속성을 지정하지 않고도 동일한 결과를 얻을 수 있습니까?
ADIMO

1
나는 이것이 고통스럽게 분명해야한다는 것을 알고 있지만 작동하도록 할 수는 없습니다. 스크롤 가능한 열은 왼쪽에 있고 고정 된 열은 오른쪽에 있습니다. 고정 된 열에는 레이블 만 있지만 어떤 이유로 이러한 클래스를 설정하면 레이블이 열에있는 대신 왼쪽 상단 모서리에 "고정"됩니다. 나는 아무 소용이없는 스타일 속성의 모든 다른 조합을 시도했다. 포인터 감사하겠습니다 :)
Reid

1
@ReidBelton은 Jsfiddle을 공유하므로 코드 작성을 도와 드릴 수 있습니다.

@ IhabAbdel-Rahim 제안에 감사드립니다! 그러나이 프로젝트를 보류 한 이후로 필요하지 않습니다.
Reid

나는 똑같이했지만 고정 클래스를 추가하면 사라집니다. 도와주세요.
Arpan

21

Bootstrap 3에서는 class="affix"작동하지만 Bootstrap 4에서는 작동하지 않습니다. 나는 Bootstrap 4 에서이 문제를 해결했습니다 class="sticky-top" ( position: fixedCSS에서 사용 하면 자체 문제가 있습니다)

코드는 다음과 같습니다.

<div class="row">
    <div class="col-lg-3">
        <div class="sticky-top">
            Fixed content
        </div>
    </div>
    <div class="col-lg-9">
        Normal scrollable content
    </div>
</div>

완전한. position-fixed또한 기둥을 맨 위에 고정하기 위해 노력했지만 기둥의 내용이 넘쳤습니다. sticky-top그것을 고쳤습니다.
maxpaj

11

부트 스트랩 4 업데이트

이제 부트 스트랩 4에는 position-fixed이러한 목적을위한 클래스가 포함되어 있으므로 추가 CSS가 필요하지 않습니다.

<div class="container">
    <div class="row">
        <div class="col-lg-3">
            <div class="position-fixed">
                Fixed content
            </div>
        </div>
        <div class="col-lg-9">
            Normal scrollable content
        </div>
    </div>
</div>

https://www.codeply.com/go/yOF9csaptw


1
귀하의 예에서와 같이하면 "col-lg-3"열의 내용이 상위 항목을 벗어납니다. 아주 이상합니다! (여기에 더 많은 텍스트를 넣으십시오). 버그 여야합니다 ...
ThePhi

1
고정 위치 요소가 일반 DOM 흐름에서 제거되므로 이상하지 않습니다 . 이것은 원래 질문의 범위를 벗어나지 만 고정 요소에 특정 크기를 설정해야합니다.
Zim

2
이로 인해 열이 서로 겹치게됩니다.
ChumiestBucket

1
필자의 경우 위치를 정의 할 때 이것이 선호되었습니다. col-lg-3 div에 대한 고정 스타일링으로 인해 내부 자식 요소의 커서가 기본값으로 표시됩니다 (fx. 포인터 대신).
chri3g91

4

이것을 사용하고 나를 위해 작동하며 작은 화면으로 문제를 해결하십시오.

<div class="row">
    <!-- (fixed content) JUST VISIBLE IN LG SCREEN -->
    <div class="col-lg-3 device-lg visible-lg">
       <div class="affix">
           fixed position 
        </div>
    </div>
    <div class="col-lg-9">
    <!-- (fixed content) JUST VISIBLE IN NO LG SCREEN -->
    <div class="device-sm visible-sm device-xs visible-xs device-md visible-md ">
       <div>
           NO fixed position
        </div>
    </div>
       Normal data enter code here
    </div>
</div>

2

부트 스트랩 4에서는 col-auto를 사용하십시오.

<div class="container-fluid">
    <div class="row">
        <div class="col-sm-auto">
            Fixed content
        </div>
        <div class="col-sm">
            Normal scrollable content
        </div>
    </div>
</div>

1
나를 위해 일하지 않았다. 두 열 모두 예상대로 스크롤됩니다.
ChumiestBucket 2019

1
@star_trac 일부 CSS를 추가하려고, 도움이 될 것입니다.container-fluid { flex: 1; }
stefanitsky
당사 사이트를 사용함과 동시에 당사의 쿠키 정책개인정보 보호정책을 읽고 이해하였음을 인정하는 것으로 간주합니다.
Licensed under cc by-sa 3.0 with attribution required.