CSS와 함께 플렉스 레이아웃을 사용할 때 스크롤바 문제를 해결하는 방법은 무엇입니까?

Radical_Activity

플렉스 레이아웃을 사용하는 프런트 엔드 프레임워크를 사용하고 있습니다. sidebar, header, main섹션 이 있는 관리 페이지를 만들기 시작했습니다 . 사이드바와 헤더 + 메인 섹션이 독립적으로 작동하기를 원합니다. 따라서 사이드바에 브라우저 창의 사이트보다 더 많은 데이터가 있는 경우 스크롤바를 사용해야 하지만 항상 전체 공간을 채우려고 하므로 height: 100%. 헤더 + 메인 섹션에는 스크롤바가 있어야 하지만 헤더는 고정되어서는 안 됩니다. 메인 섹션에 콘텐츠가 많더라도 맨 위에 있어야 합니다.

실제로 섹션 에 추가 overflow: initial하여 이 작업을 수행했습니다 . 따라서 스크롤 막대는 이제 섹션 의 측면뿐만 아니라 전체 컨테이너 측면에 나타 납니다. 그러나 이렇게 하면 메인 섹션에 더 많은 콘텐츠가 있는 경우 사이드바의 높이가 100%가 되지 않습니다.mainoverflow: automain

플렉스 레이아웃에서 너무 많이 변경하지 않음으로써 이 문제를 어떻게 고칠 수 있습니까? 예를 들어 사이드바를 수정하면 문제가 해결될 것입니다. 하지만 더 훌륭하고 우아한 방법이 없을까요?

html, body {
				margin: 0px;
			}
			.container {
				display: -webkit-box;
			    display: -ms-flexbox;
			    display: flex;
			    -webkit-box-orient: horizontal;
			    -ms-flex-direction: row;
			    flex-direction: row;
			    -webkit-box-flex: 1;
			    -ms-flex: 1;
			    flex: 1;
			    -ms-flex-preferred-size: auto;
			    flex-basis: auto;
			    -webkit-box-sizing: border-box;
			    box-sizing: border-box;
			    min-width: 0;
			    -webkit-box-direction: normal;
			    height: 100%;
			}

			.aside {
				-webkit-transition: margin-left 0.5s ease-in-out;
			    transition: margin-left 0.5s ease-in-out;
			    overflow: auto;
			    -webkit-box-sizing: border-box;
			    box-sizing: border-box;
			    -ms-flex-negative: 0;
			    flex-shrink: 0;
			    width: 260px;
			    background: #333;
			    height: 100%;
			    color: #fff;
			}

			.scrollbar {
				top: 0;
			    bottom: 0;
			    left: 0;
			    right: 0;
			    height: 100%;
			    overflow: hidden;
			    position: fixed;
			    overflow: hidden;
			    position: relative;
			}

			.vertical {
			-webkit-box-direction: normal;
			    -webkit-box-orient: vertical;
			    -ms-flex-direction: column;
			    flex-direction: column;
			}

			.header {
				color: #333;
			    line-height: 50px;
			    text-align: left;
			    background-color: #fff;
			    border-bottom: 1px solid #eee;
			    padding: 0 20px;
			    -webkit-box-sizing: border-box;
			    box-sizing: border-box;
			    -ms-flex-negative: 0;
			    flex-shrink: 0;
			    height: 50px;
			    background: #999;
			}

			.main {
			    background-color: #e9eef3;
			    color: #333;
			    font-family: "Open Sans", sans-serif;
			    display: block;
			    -webkit-box-flex: 1;
			    -ms-flex: 1;
			    flex: 1;
			    -ms-flex-preferred-size: auto;
			    flex-basis: auto;
			    overflow: initial;
			    -webkit-box-sizing: border-box;
			    box-sizing: border-box;
			    padding: 20px;
			}

			.card {
				border: 1px solid #EBEEF5;
			    background-color: #FFF;
			    color: #303133;
			    -webkit-transition: .3s;
			    transition: .3s;
			    -webkit-box-shadow: 0 2px 12px 0 rgba(0,0,0,.1);
			    box-shadow: 0 2px 12px 0 rgba(0,0,0,.1);
			    -webkit-box-sizing: border-box;
			    box-sizing: border-box;
			}
<html>
	<head>
	</head>
	<body>
		<div class="container">
			<aside class="aside">
				bar<br>
				bar<br>
				bar<br>
				bar<br>
				bar<br>
				bar<br>
				bar<br>
				bar<br>
				bar<br>
				bar<br>
				bar<br>
				bar<br>
				bar<br>
				bar<br>
				bar<br>
				bar<br>
				bar<br>
				bar<br>
				bar<br>
				bar<br>
				bar<br>
				bar<br>
				bar<br>
				bar<br>
				bar<br>
				bar<br>
				bar<br>
				bar<br>
				bar<br>
				bar<br>
				bar<br>
				bar<br>
				bar<br>
				bar<br>
				bar<br>
				bar<br>
				bar<br>
				bar<br>
				bar<br>
				bar<br>
				bar<br>
				bar<br>
				bar<br>
				bar<br>
				bar<br>
				bar<br>
				bar<br>
				bar<br>
				bar<br>
				bar<br>
				bar<br>
				bar<br>
				bar<br>
				bar<br>
				bar<br>
				bar<br>
				bar<br>
				bar<br>
				bar<br>
				bar<br>
				bar<br>
				bar<br>
			</aside>
			<section class="container vertical">
				<header class="header">
					
				</header>

				<main class="main">
					<div class="card">
						foo<br>
						foo<br>
						foo<br>
						foo<br>
						foo<br>
						foo<br>
						foo<br>
						foo<br>
						foo<br>
						foo<br>
						foo<br>
						foo<br>
						foo<br>
						foo<br>
						foo<br>
						foo<br>
						foo<br>
						foo<br>
						foo<br>
						foo<br>
						foo<br>
						foo<br>
						foo<br>
						foo<br>
						foo<br>
						foo<br>
						foo<br>
						foo<br>
						foo<br>
						foo<br>
						foo<br>
						foo<br>
						foo<br>
						foo<br>
						foo<br>
						foo<br>
						foo<br>
						foo<br>
						foo<br>
						foo<br>
						foo<br>
						foo<br>
						foo<br>
						foo<br>
						foo<br>
						foo<br>
						foo<br>
						foo<br>
						foo<br>
						foo<br>
						foo<br>
						foo<br>
						foo<br>
						foo<br>
						foo<br>
						foo<br>
						foo<br>
						foo<br>
						foo<br>
						foo<br>
						foo<br>
						foo<br>
						foo<br>
						foo<br>
						foo<br>
						foo<br>
						foo<br>
						foo<br>
						foo<br>
						foo<br>
						foo<br>
						foo<br>
						foo<br>
						foo<br>
						foo<br>
						foo<br>
						foo<br>
						foo<br>
						foo<br>
					</div>
				</main>
			</section>
		</div>
	</body>
</html>

라스트코

이 경우에 좋은 해킹은 메인+헤더를 한 요소에, 사이드바를 다른 요소에 모두 넣은 다음 이 두 컨테이너를 고정된 상태로 배치하는 것이라고 생각합니다.

그런 다음 헤더는 절대적으로 위치해야 합니다(고정된 위치 헤더+메인 내부에 있어야 메인이 헤더 아래에서 스크롤할 수 있습니다.

이제 디자인해야 할 것은 스크롤 표시를 관리하기 위한 오버플로뿐입니다.

이 기사는 인터넷에서 수집됩니다. 재 인쇄 할 때 출처를 알려주십시오.

침해가 발생한 경우 연락 주시기 바랍니다[email protected] 삭제

에서 수정
0

몇 마디 만하겠습니다

0리뷰
로그인참여 후 검토

관련 기사

FirestoreRecyclerAdapter와 함께 RecyclerView를 사용할 때 스크롤 위치를 설정하는 방법은 무엇입니까?

플렉스를 사용할 때 테이블 스크롤을 만드는 방법은 무엇입니까?

Minizinc와 함께 OR-Tools 솔버를 사용할 때 이 문제를 해결하는 방법은 무엇입니까?

ffmpeg와 함께 sox를 사용할 때 샘플 형식을 설정하는 방법은 무엇입니까?

텍스트와 함께 glyphicon을 사용할 때 추가 공간을 피하는 방법은 무엇입니까?

SwiftUI와 함께 SceneKit을 사용할 때 SCNSceneRendererDelegate 메서드에 액세스하는 방법은 무엇입니까?

스크래피를 사용할 때 주문 문제를 해결하는 방법은 무엇입니까?

레이아웃을 포함시킬 때 inflateException 문제를 해결하는 방법은 무엇입니까?

인증을 위해 후크와 함께 컨텍스트를 사용하는 방법은 무엇입니까?

패키지와 함께 JNI를 사용할 때 UnsatisfiedLinkError를 해결하는 방법은 무엇입니까?

R-FOR LOOP와 함께 ASSIGN을 사용할 때 NA를 제거하는 방법은 무엇입니까?

Generics와 함께 사용할 때 "Bad operand for binary operator '+'"를 해결하는 방법은 무엇입니까?

Vim이 Ctrl + v와 함께 사용할 때 Ctrl을 먹어 치우는 이유와이를 해결하는 방법은 무엇입니까?

CSS 스크롤 스냅을 JS 스크롤 이벤트 리스너와 함께 사용하는 방법은 무엇입니까?

열 줄 바꿈과 함께 플렉스를 사용하는 경우 창 크기를 조정할 때 오른쪽 열에서 패딩을 방지하는 방법은 무엇입니까?

CSS에서 위치와 디스플레이를 함께 사용하는 동작은 무엇입니까?

부트스트랩 플렉스박스와 함께 CSS 전환을 사용하는 방법은 무엇입니까?

Typescript와 함께 Vue.js를 사용할 때 vue-resource와 같은 플러그인을 사용하는 방법은 무엇입니까?

이전 / 이후와 함께 scalatest를 사용할 때 'null'을 피하는 방법은 무엇입니까?

사용자 지정 동작과 함께 사용할 때 스 와이프하여 레이아웃 문제를 새로 고칩니다.

Angular CDK DnD와 함께 맵을 사용할 때 뷰를 업데이트하는 방법은 무엇입니까?

watson-developer-cloud 패키지와 함께 Watson Q & A 서비스를 사용할 때 전체 답변을 얻는 방법은 무엇입니까?

파이썬에서 범위와 함께 사용할 때 for 루프 인덱스를 증가시키는 방법은 무엇입니까?

React.memo와 함께 React 기능 구성 요소를 사용할 때 클로저 문제를 해결하는 방법은 무엇입니까?

자바 스크립트와 아약스를 사용할 때 forloop (laravel)에서 많은 동적 드롭 다운을 사용하는 방법은 무엇입니까?

익스프레스 : sendFile을 사용하여 CSS와 함께 HTML을 보내는 방법은 무엇입니까?

webpacker와 함께 HTML 내 자바 스크립트를 사용하는 올바른 방법은 무엇입니까?

자바 스크립트와 함께 Promise.reject를 사용하는 올바른 방법은 무엇입니까?

배열 인덱스와 함께 if 문에서 JRadioButton을 사용하는 올바른 방법은 무엇입니까?

TOP 리스트

  1. 1

    셀레늄의 모델 대화 상자에서 텍스트를 추출하는 방법은 무엇입니까?

  2. 2

    Blazor 0.9.0 및 ASP.NET Core 3 미리보기 4를 사용한 JWT 인증

  3. 3

    openCV python을 사용하여 텍스트 문서에서 워터 마크를 제거하는 방법은 무엇입니까?

  4. 4

    C # 16 진수 값 0x12는 잘못된 문자입니다.

  5. 5

    Excel : 합계가 N보다 크거나 같은 상위 값 찾기

  6. 6

    오류 : MSB4803 : MSBuild의 .NET Core 버전에서 "ResolveComReference"작업이 지원되지 않습니다.

  7. 7

    R에서 Excel로 내보낼 때 CET / CEST 시간 이동이 삭제됨

  8. 8

    node.js + postgres : "$ 1"또는 그 근처에서 구문 오류

  9. 9

    확대 후 하이 차트에서 Y 축이 잘못 정렬 됨

  10. 10

    EPPlus에서 행 높이를 설정할 때 이상한 동작

  11. 11

    Ionic 2 로더가 적시에 표시되지 않음

  12. 12

    MS Access 부분 일치 2 테이블

  13. 13

    EPPlus에서 병합 된 셀의 행 높이 자동 맞춤

  14. 14

    ExecuteNonQuery- 연결 속성이 초기화되지 않았습니다.

  15. 15

    ResponseEntity를 사용하고 InputStream이 닫히는 지 확인하는 적절한 스트리밍 방법

  16. 16

    PrematureCloseException : 연결이 너무 일찍 닫혔습니다.

  17. 17

    오류 : "const wchar_t *"유형의 인수가 "WCHAR *"유형의 매개 변수와 호환되지 않습니다.

  18. 18

    Java에서 이미지를 2 색으로 변환

  19. 19

    overflow-y를 사용할 때 스크롤 버벅 거림 줄이기 : scroll;

  20. 20

    Java에서 Apache POI를 사용하여 테이블 크기 및 간격을 단어로 설정하는 방법

  21. 21

    Android Kotlin은 다른 활동에서 함수를 호출합니다.

뜨겁다태그

보관