[CSS] 교차축 정렬에는 align-items와 align-content 이다.

2024. 7. 4. 16:36·CSS
Flexbox 레이아웃에서 교차축은 주 축(main axis)에 수직인 축이다.
교차축 정렬을 위해 두 가지 주요 속성은 align-items와 align-content 이다.

교차축 정렬이란?

Flexbox 레이아웃에서 교차축(cross axis)은 주 축(main axis)에 수직인 축을 의미한다.

교차축 정렬은 이 축을 따라 Flex 아이템들을 배치하는 방법이다. 주 축이 수평 방향일 때 교차축은 수직 방향이 되고, 주 축이 수직 방향일 때 교차축은 수평 방향이 된다. 교차축 정렬을 위해 두 가지 주요 align-items와 align-content 속성을 사용한다.

 

1. align-items

align-items 속성은 Flex 컨테이너 내의 개별 Flex 아이템들을 교차축을 따라 정렬한다.

Flex 컨테이너의 높이와 관계없이 각 아이템의 위치를 지정할 수 있다.

  • flex-start: 아이템들을 교차축의 시작 부분에 정렬한다.
  • flex-end: 아이템들을 교차축의 끝 부분에 정렬한다.
  • center: 아이템들을 교차축의 가운데에 정렬한다.
  • baseline: 아이템들을 텍스트의 기준선에 따라 정렬한다.
  • stretch (기본값): 아이템들을 Flex 컨테이너의 높이에 맞게 늘린다.

2. align-content

align-content 속성은 Flex 컨테이너 내에서 여러 줄의 Flex 아이템들을 교차축을 따라 정렬합니다. 이는 단일 행 또는 단일 열이 아닌 여러 줄의 Flex 아이템을 조정할 때 사용됩니다.

  • flex-start: 줄들을 교차축의 시작 부분에 정렬한다.
  • flex-end: 줄들을 교차축의 끝 부분에 정렬한다.
  • center: 줄들을 교차축의 가운데에 정렬한다.
  • space-between: 첫 번째 줄은 시작 부분에, 마지막 줄은 끝 부분에 정렬하고, 나머지 줄들은 사이에 고르게 분포시킨다.
  • space-around: 줄들 주위에 고르게 여백을 분포시킨다.
  • stretch (기본값): 줄들을 Flex 컨테이너의 높이에 맞게 늘린다.

 

1
<!DOCTYPE html>
<html>
<head>
<meta charset="UTF-8">
<title>Insert title here</title>
<style type="text/css">
	.container {
		display: flex;
		flex-wrap: wrap;
		border: 2px solid #333;
		padding: 10px;
		height: 350px;
		background-color:  #f9f9f9;
		flex-direction: row;
		
		}
	
	.item {
		background-color: #007bff;
		color: white;
		padding: 20px;
		margin: 10px;
		text-align: center;
		border-radius: 5px;
		width: 150px;
	}

</style>
</head>
<body>
	<h2>align-items: stretch</h2>
	<div class="container" style="align-items: stretch;">
		<div class="item">아이템1</div>
		<div class="item">아이템2</div>
		<div class="item">아이템3</div>
	</div>
	
		<h2>align-items: flex-start</h2>
	<div class="container" style="align-items: flex-start;">
		<div class="item">아이템1</div>
		<div class="item">아이템2</div>
		<div class="item">아이템3</div>
	</div>
	
			<h2>align-items: flex-end</h2>
	<div class="container" style="align-items: flex-end;">
		<div class="item">아이템1</div>
		<div class="item">아이템2</div>
		<div class="item">아이템3</div>
	</div>
	
		<h2>align-items: center</h2>
	<div class="container" style="align-items: center;">
		<div class="item">아이템1</div>
		<div class="item">아이템2</div>
		<div class="item">아이템3</div>
	</div>
	
	<!--  잠깐 문제 -->
		<h2>정 가운데로 정렬해주세요!</h2>
	<div class="container" style="align-items: center; justify-content: center;">
		<div class="item">아이템1</div>
	</div>
		<!--  잠깐 문제 -->
		<h2>끝으로!</h2>
	<div class="container" style="align-items: flex-end; justify-content: flex-end;">
		<div class="item">아이템1</div>
	
	</div>
	
</body>
</html>

2
<!DOCTYPE html>
<html>
<head>
<meta charset="UTF-8">
<title>Insert title here</title>
<style type="text/css">
	.container {
		display: flex;
		flex-wrap: wrap;
		border: 2px solid #333;
		padding: 10px;
		height: 350px;
		background-color:  #f9f9f9;
		flex-direction: row;
		width: 1200px;
		
		}
	
	.item {
		background-color: #B22222;
		color: white;
		padding: 30px;
		margin: 10px;
		text-align: center;
		border-radius: 5px;
		width: 500px;
	}

</style>
</head>
<body>
	<h2>align-content: flex-start</h2>
	<div class="container" style="align-content: flex-start; ">
		<div class="item">아이템 1</div>
		<div class="item">아이템 2</div>
		<div class="item" >아이템 3</div>
		<div class="item">아이템 4</div>
	</div>
	
		<h2>align-content: flex-end</h2>
	<div class="container" style="align-content: flex-end;">
		<div class="item">아이템 1</div>
		<div class="item">아이템 2</div>
		<div class="item">아이템 3</div>
		<div class="item">아이템 4</div>
	</div>
	
		<h2>align-content: center</h2>
	<div class="container" style="align-content: center;">
		<div class="item">아이템 1</div>
		<div class="item">아이템 2</div>
		<div class="item">아이템 3</div>
		<div class="item">아이템 4</div>
	</div>
	
	
	
		<h2>align-content: space-between</h2>
	<div class="container" style="align-content: space-between;">
		<div class="item">아이템 1</div>
		<div class="item">아이템 2</div>
		<div class="item">아이템 3</div>
		<div class="item">아이템 4</div>
	</div>
	
		<h2>align-content: space-around</h2>
	<div class="container" style="align-content: space-around;">
		<div class="item">아이템 1</div>
		<div class="item">아이템 2</div>
		<div class="item">아이템 3</div>
		<div class="item">아이템 4</div>
	</div>
	
		<h2>align-content: stretch(기본값)</h2>
	<div class="container" style="align-content: stretch">
		<div class="item">아이템 1</div>
		<div class="item">아이템 2</div>
		<div class="item">아이템 3</div>
		<div class="item">아이템 4</div>
	</div>
	

	
</body>
</html>

'CSS' 카테고리의 다른 글

Flexbox - 연습 문제  (0) 2024.07.04
[CSS] FlexItem의 세밀한 제어 flex 속성  (0) 2024.07.04
[CSS] 주축 방향 정렬 justify-content 란?  (0) 2024.07.04
[CSS] flex-wrap 이해하기  (0) 2024.07.04
css 공부  (0) 2024.07.02
'CSS' 카테고리의 다른 글
  • Flexbox - 연습 문제
  • [CSS] FlexItem의 세밀한 제어 flex 속성
  • [CSS] 주축 방향 정렬 justify-content 란?
  • [CSS] flex-wrap 이해하기
미로910
미로910
개발자를 꿈꾸는 민경이의 기록 블로그
  • 미로910
    개발 note
    미로910
  • 전체
    오늘
    어제
    • 분류 전체보기
      • 설치 메뉴얼
      • HTML
      • JAVA
        • Java 기초
        • Java 응용
        • 자료구조
        • HTTP
        • JSP 프로그래밍
      • MySQL
        • MySQL 기본
        • 1일 1쿼리
      • CSS
      • Spring boot
      • JS
        • 게시판 만들기
      • Git
      • Flutter
        • MVVM 활용
        • 심화 버전
        • 1일 1 Flutter
      • 디자인 패턴의 활용
      • error note
      • My Project
        • [졸작] LLM 기반 특허 유사도 분석 시스템
        • 도서 관리 프로그램 (final project)
        • amigo
        • 친구 매칭 프로그램(FMP)
      • Python
      • 딥러닝
      • 네트워크
      • 공부 노트
        • 연구회
        • 자료구조
      • 기타
  • 블로그 메뉴

    • 홈
    • 전체보기
    • -----------------------
  • 링크

  • 공지사항

  • 인기 글

  • 태그

    Flutter
  • 최근 댓글

  • 최근 글

  • hELLO· Designed By정상우.v4.10.6
미로910
[CSS] 교차축 정렬에는 align-items와 align-content 이다.
상단으로

티스토리툴바