λ³Έλ¬Έ λ°”λ‘œκ°€κΈ°
πŸ’»/CSS

(44) [CSS] 2일 λ ˆμ΄μ•„μ›ƒκ³Ό 포지셔닝 - flex

by λ”°κΆˆ 2024. 4. 17.

 

 

flex 
λ·° ν¬νŠΈλ‚˜ μš”μ†Œμ˜ 크기가 뢈λͺ…ν™•ν•˜κ±°λ‚˜ λ™μ μœΌλ‘œ λ³€ν•  λ•Œμ—λ„ 효율적으둜 μš”μ†Œλ₯Ό 배치,μ •λ ¬,
λΆ„μ‚΄ν•  수 μžˆλŠ” 방법을 μ œκ³΅ν•˜λŠ” CSS3의 μƒˆλ‘œμš΄ λ ˆμ΄μ•„μ›ƒ 방식
μž₯점. 'λ³΅μž‘ν•œ 계산 없이 μš”μ†Œμ˜ 크기와 μˆœμ„œλ₯Ό μœ μ—°ν•˜κ²Œ λ°°μΉ˜ν•  수 μžˆλ‹€

flexbox ꡬ성

 

속성

display : flexboxλŠ” μ •λ ¬ν•˜λ €λŠ” μš”μ†Œμ˜ λΆ€λͺ¨ μš”μ†Œμ— display : flex λ˜λŠ” display:line-felx 속성 값을 μ„ μ–Έν•œλ‹€

 

flex-direction ν”Œλž˜μŠ€ μ»¨ν…Œμ΄λ„ˆ λ‚΄μ˜ μ•„μ΄ν…œμ„ λ°°μΉ˜ν•  λ•Œ μ‚¬μš©ν•  μ£ΌμΆ• 및 λ°©ν–₯을 μ§€μ •ν•œλ‹€. 
flex-wrap flex-item μš”μ†Œλ“€μ΄ κ°•μ œλ‘œ ν•œ 쀄에 배치되게 ν•  것인지, λ˜λŠ” κ°€λŠ₯ν•œ μ˜μ—­ λ‚΄μ—μ„œ λ²—μ–΄λ‚˜μ§€ μ•Šκ³  μ—¬λŸ¬ ν–‰μœΌλ‘œ λ‚˜λˆ„μ–΄ ν‘œν˜„ ν•  것인지 κ²°μ •ν•˜λŠ” 속성이닀. 
justify-content μ£Ό μΆ•μ˜ μ •λ ¬ 방법을 μ„€μ •ν•œλ‹€. 
align-content ꡐ차 μΆ•μ˜ μ •λ ¬ 방법을 μ„€μ •ν•œλ‹€. 
align-items ꡐ차 μΆ•μ—μ„œ items의 μ •λ ¬ 방법을 μ„€μ •ν•œλ‹€. 

 

<!DOCTYPE html>
<html>
<head>
<meta charset="UTF-8">
<title>Insert title here</title>
<style type="text/css">
.flex-container{
	width: 350px; padding: 10px; margin: 20px;
	border: 3px dotted gray;
}

.box{
	width: 80px; height: 50px; line-height: 50px;
	text-align: center;
	margin: 5px;
	border: 1px solid blue;
}

.flex{
	display: flex;
}
.inline-flex{
	display: inline-flex;
}


</style>

</head>
<body>

<h3>flex</h3>

<p>ν”Œλ ‰μŠ€ λ ˆμ΄μ•„μ›ƒμ΄ μ μš©λ˜μ§€ μ•Šμ€ 경우</p>
<div class="flex-container ">
	<div class="box">A</div>
	<div class="box">B</div>
	<div class="box">C</div>
</div>
<hr>

<p>display: flex, flex-containerλ₯Ό 수직으둜 μŒ“λŠ”λ‹€.</p>
<div class="flex-container flex">
	<div class="box">A</div>
	<div class="box">B</div>
	<div class="box">C</div>
</div>
<div class="flex-container flex">
	<div class="box">A</div>
	<div class="box">B</div>
	<div class="box">C</div>
</div>
<hr>

<p>display: inline-flex, flex-containerλ₯Ό μˆ˜ν‰μœΌλ‘œ μŒ“λŠ”λ‹€.</p>
<div class="flex-container inline-flex">
	<div class="box">A</div>
	<div class="box">B</div>
	<div class="box">C</div>
</div>
<div class="flex-container inline-flex">
	<div class="box">A</div>
	<div class="box">B</div>
	<div class="box">C</div>
</div>
<hr>

</body>
</html>

 

 

 

<!DOCTYPE html>
<html>
<head>
<meta charset="UTF-8">
<title>Insert title here</title>
<style type="text/css">

.flex-container{
	width: 350px; padding: 10px; margin: 20px;
	border: 3px dotted gray;
	display: flex;
}

.box{
	width: 80px; height: 50px; line-height: 50px;
	text-align: center;
	margin: 5px;
	border: 1px solid blue;	
}

.row{
	flex-direction: row;
}
.row-reverse{
	flex-direction: row-reverse;
}

.column{
	flex-direction: column;
}

.column-reverse{
	flex-direction: column-reverse;
}


</style>

</head>
<body>

<h3>flex-direction : μ•„μ΄ν…œμ˜ μ£ΌμΆ• λ°©ν–₯ μ„€μ •</h3>

<p>κΈ°λ³Έκ°’</p>
<div class="flex-container ">
	<div class="box">A</div>
	<div class="box">B</div>
	<div class="box">C</div>
</div>
<hr>

<p>flex-direction: row</p>
<div class="flex-container row">
	<div class="box">A</div>
	<div class="box">B</div>
	<div class="box">C</div>
</div>

<p>flex-direction: row-reverse</p>
<div class="flex-container row-reverse">
	<div class="box">A</div>
	<div class="box">B</div>
	<div class="box">C</div>
</div>

<p>flex-direction: column</p>
<div class="flex-container column">
	<div class="box">A</div>
	<div class="box">B</div>
	<div class="box">C</div>
</div>

<p>flex-direction: column-reverse</p>
<div class="flex-container column-reverse">
	<div class="box">A</div>
	<div class="box">B</div>
	<div class="box">C</div>
</div>

</body>
</html>

 

 

 

 

<!DOCTYPE html>
<html>
<head>
<meta charset="UTF-8">
<title>Insert title here</title>

<style type="text/css">
.parent {
	width: 500px;
	height: 350px;
	border: 1px solid blue;

	display: flex;
	align-content:center; /*수직 κ°€μš΄λ°. flexμ—μ„œλ§Œ κ°€λŠ₯*/
	justify-content: center; /*μ£ΌμΆ•μ˜ κ°€μš΄λ° flex μ—μ„œλ§Œ κ°€λŠ₯*/
}

.box{
	width: 350px;
	border: 1px solid orange;
	background: yellow;
}

.h3{
	text-align: center;
}


</style>

</head>
<body>

<div class="parent">
	<div class="box">
		<h3>display: flexλ₯Ό μ΄μš©ν•œ 수직의 κ°€μš΄λ° μ •λ ¬</h3>
	</div>
</div>

</body>
</html>