์ƒ์„ธ ์ปจํ…์ธ 

๋ณธ๋ฌธ ์ œ๋ชฉ

[CSS] flex-direction ์†์„ฑ์ด๋ž€?

CSS

by ๋ฏธ๋กœ910 2024. 7. 1. 16:41

๋ณธ๋ฌธ

๐Ÿ’ก
์ฃผ ์ถ•(main axis)๊ณผ ๊ต์ฐจ ์ถ•(cross axis)
flex-direction: row, row-reverse, column, column-reverse

 

FlexBox์˜ ๋‘ ๊ฐœ์˜ ์ถ•

flexbox ๋ ˆ์ด์•„์›ƒ์˜ ์ •๋ ฌ์„ ์ดํ•ดํ•˜๋Š”๋ฐ ๊ฐ€์žฅ ์ค‘์š”ํ•œ ์—ญํ• ์„ ํ•˜๊ฒŒ ๋œ๋‹ค.

์ฃผ์ถ•( main axis)์˜ ๋ฐฉํ–ฅ๊ณผ ๊ต์ฐจ์ถ• (cross axis )์˜ ๋ฐฉํ–ฅ์„ ๊ฒฐ์ •ํ•˜๋Š” flex-direction ์ด๋ผ๋Š” ์†์„ฑ์ด ์žˆ๋‹ค.

flex-direction์˜ ๊ธฐ๋ณธ๊ฐ’์€ row์ž…๋‹ˆ๋‹ค.

  1. ์ฃผ์ถ• ๋ฐฉํ–ฅ(main axis) : Flex container์— ์„ ์–ธ๋œ flex-direction์˜ ๊ฐ’์— ๋”ฐ๋ผ ์ž์‹ ์š”์†Œ์ธ flex item์ด ๋‚˜์—ด๋˜๋Š” ๋ฐฉํ–ฅ์ด๋‹ค. flex-direction:row ์ธ ๊ฒฝ์šฐ๋Š” ์ฃผ์ถ•์ด ์ˆ˜ํ‰์ด ๋˜๊ณ  flex-direction:column์ธ ๊ฒฝ์šฐ๋Š” ์ฃผ์ถ•์ด ์ˆ˜์ง ๋ฐฉํ–ฅ์ด ๋œ๋‹ค.
  2. ๊ต์ฐจ์ถ• ๋ฐฉํ–ฅ(cross axis ) : Flex container์˜ ์ฃผ์ถ•์— ์ง๊ฐ์„ ์ด๋ฃจ๋Š” ์ถ•์œผ๋กœ ์ฃผ์ถ•์ด ์ˆ˜ํ‰์ด๋ฉฐ ๊ต์ฐจ์ถ•์€ ์ˆ˜์ง ๋ฐฉํ–ฅ์ด ๋œ๋‹ค.

 

flex-direction ์†์„ฑ์ด๋ž€?

flex-direction ์†์„ฑ์€ ์ฃผ ์ถ•์˜ ๋ฐฉํ–ฅ์„ ์„ค์ •ํ•œ๋‹ค.

  • row: ์•„์ดํ…œ๋“ค์„ ์ˆ˜ํ‰์œผ๋กœ ๋ฐฐ์น˜ํ•œ๋‹ค (๊ธฐ๋ณธ๊ฐ’).
  • row-reverse: ์•„์ดํ…œ๋“ค์„ ์ˆ˜ํ‰์œผ๋กœ ๋ฐฐ์น˜ํ•˜๋˜, ๋ฐ˜๋Œ€ ๋ฐฉํ–ฅ์œผ๋กœ ๋ฐฐ์น˜ํ•œ๋‹ค.
  • column: ์•„์ดํ…œ๋“ค์„ ์ˆ˜์ง์œผ๋กœ ๋ฐฐ์น˜ํ•œ๋‹ค.
  • column-reverse: ์•„์ดํ…œ๋“ค์„ ์ˆ˜์ง์œผ๋กœ ๋ฐฐ์น˜ํ•˜๋˜, ๋ฐ˜๋Œ€ ๋ฐฉํ–ฅ์œผ๋กœ ๋ฐฐ์น˜ํ•œ๋‹ค.
  •  

1
<!DOCTYPE html>
<html>
<head>
<meta charset="UTF-8">
<title>์ธ๋ผ์ธ์š”์†Œ์™€ํŒจ๋”ฉ๊ทธ๋ฆฌ๊ณ ๋งˆ์ง„</title>
<style type="text/css">
	.m-inline{
		background-color:lightgreen;
		padding: 10px;
		margin-top: 200px;
		margin-left: 20px;
		margin-right: 20px;
		border: 1px solid red;
		
	}
</style>
</head>
<body>
 	<!--  http://localhost:8080/demo1/  -->
    <h1>์—ฌ๊ธฐ๋Š” demo_01.html ํŒŒ์ผ์ž…๋‹ˆ๋‹ค.</h1>
    <p>
    ์ด ํ…์ŠคํŠธ๋Š” <span class="m-inline">์ธ๋ผ์ธ ์š”์†Œ 1</span>์ž…๋‹ˆ๋‹ค.
    ์ด ํ…์ŠคํŠธ๋Š” <span class="m-inline">์ธ๋ผ์ธ ์š”์†Œ 2</span>์ž…๋‹ˆ๋‹ค.
    </p>
</body>
</html>

<!DOCTYPE html>
<html>
<head>
<meta charset="UTF-8">
<title>์ธ๋ผ์ธ๋ธ”๋ก ์š”์†Œ ์˜ˆ์‹œ</title>
<style type="text/css">
	.m-inline-block{
		display: inline-block;
		background-color: aqua;
		padding: 10px;
		margin: 10px;
		
	}
	
</style>
</head>
<body>
 	<!--  http://localhost:8080/demo1/demo_02.html  -->
    <h1>์—ฌ๊ธฐ๋Š” demo_02.html ํŒŒ์ผ์ž…๋‹ˆ๋‹ค.</h1>
    <div class="m-inline-block">์ธ๋ผ์ธ ๋ธ”๋ก ์š”์†Œ1</div>
    <div class="m-inline-block">์ธ๋ผ์ธ ๋ธ”๋ก ์š”์†Œ2</div>
    
</body>
</html>

3
<!DOCTYPE html>
<html>
<head>
<meta charset="UTF-8">
<title>์ธ๋ผ์ธ๋ธ”๋ก ์š”์†Œ ์˜ˆ์‹œ</title>
<style type="text/css">
	
	.container {
		display: flex;
		border: 1px solid black;
		flex-direction: row; 
	}
	
	.item {
		background-color:  lightblue;
		padding: 10px;
		margin: 5px;
		border: 1px solid blue;
		
	}
	
</style>
</head>
<body>
 	<!--  http://localhost:8080/demo1/demo_03.html  -->
    <h1>์—ฌ๊ธฐ๋Š” demo_03.html ํŒŒ์ผ์ž…๋‹ˆ๋‹ค.</h1>
    <br>
    
    <h3>flex-directioon : row(๊ธฐ๋ณธ๊ฐ’)</h3>
    <div class="container">
    	<div class="item">์•„์ดํ…œ1</div>
    	<div class="item">์•„์ดํ…œ2</div>
    	<div class="item">์•„์ดํ…œ3</div>
    </div>
    
     <h3>flex-directioon : row-reverse</h3>
    <div class="container" style="flex-direction: row-reverse;">
    	<div class="item">์•„์ดํ…œ1</div>
    	<div class="item">์•„์ดํ…œ2</div>
    	<div class="item">์•„์ดํ…œ3</div>
    </div>
    
     <h3>flex-directioon : column</h3>
    <div class="container" style="flex-direction:column;">
    	<div class="item">์•„์ดํ…œ1</div>
    	<div class="item">์•„์ดํ…œ2</div>
    	<div class="item">์•„์ดํ…œ3</div>
    </div>
    
     <h3>flex-directioon : column-reverse</h3>
    <div class="container" style="flex-direction:column-reverse;">
    	<div class="item">์•„์ดํ…œ1</div>
    	<div class="item">์•„์ดํ…œ2</div>
    	<div class="item">์•„์ดํ…œ3</div>
    </div>
    
    
</body>
</html>

 

4 - ์•ต์ปค ํƒœ๊ทธ๋ฅผ ์‚ฌ์šฉํ•˜์—ฌ ํŽ˜์ด์ง€ ๋‚ด ํŠน์ • ์œ„์น˜๋กœ ์ด๋™ํ•  ์ˆ˜ ์žˆ๋‹ค.
<!DOCTYPE html>
<html>
<head>
<meta charset="UTF-8">
<title>์ธ๋ผ์ธ ๋ธ”๋ก ์š”์†Œ ์˜ˆ์‹œ</title>
<style type="text/css">
    .navbar1{
        display:flex;
        border: 1px solid black;
        background-color: #f8f9fa;
        padding: 10px;
    }
    .nav-item1{
        margin:5px;
        padding:10px;
        background-color:lightblue;
        color: white;
        text-align: center;
        border-radius:4px;
        text-decoration: none;
    }
    .navbar2{
        display:flex;
        border: 1px solid black;
        background-color: #f8f9fa;
        padding: 10px;
        flex-direction: column;
    }
    .nav-item2{
        margin:5px;
        padding:10px;
        background-color:lightblue;
        color: white;
        text-align: center;
        border-radius:4px;
        text-decoration: none;
    }
    .content1{
        margin: 10px;
        display:flex;
        border: 1px solid gray;
        padding: 10px;
    }
    
    .section {
    	height: 300px;
    	padding: 20px;
    	margin-top: 20px;
    	border: 1px solid #000; 
    	
    }

</style>
</head>
<body>
    <!-- http://localhost:8080/demo1/demo_04.html -->
    <h1>์—ฌ๊ธฐ๋Š” demo_04.html ํŒŒ์ผ์ž…๋‹ˆ๋‹ค.</h1>
    <br>
    
    
    
    <h2>flex-direction: row (๊ธฐ๋ณธ๊ฐ’)</h2>
        <div class="navbar1">
            <a href="#home" class="nav-item1">ํ™ˆ</a>
            <a href="#about" class="nav-item1">์†Œ๊ฐœ</a>
            <a href="#services" class="nav-item1">์„œ๋น„์Šค</a>
            <a href="#contact" class="nav-item1">์—ฐ๋ฝ์ฒ˜</a>
        </div>
        
     
    
    <h2>flex-direction: column</h2>
        <div class="navbar2">
            <a href="#home" class="nav-item2">ํ™ˆ</a>
            <a href="#about" class="nav-item2">์†Œ๊ฐœ</a>
            <a href="#services" class="nav-item2">์„œ๋น„์Šค</a>
            <a href="#contact" class="nav-item2">์—ฐ๋ฝ์ฒ˜</a>
        </div>
        
     
        
    <div class="section" id="home">
    	<h2>ํ™ˆ ์„น์…˜</h2>
    	<p>์—ฌ๊ธฐ๋Š” ํ™ˆ ์„น์…˜ ์˜์—ญ์ž…๋‹ˆ๋‹ค. </p>
    </div>
    
     <div class="section" id="about">
    	<h2>์†Œ๊ฐœ ์„น์…˜</h2>
    	<p>์—ฌ๊ธฐ๋Š” ์†Œ๊ฐœ ์„น์…˜ ์˜์—ญ์ž…๋‹ˆ๋‹ค. </p>
    </div>
    
    <div class="section" id="services">
    	<h2>์„œ๋น„์Šค ์„น์…˜</h2>
    	<p>์—ฌ๊ธฐ๋Š” ์„œ๋น„์Šค ์„น์…˜ ์˜์—ญ์ž…๋‹ˆ๋‹ค. </p>
    </div>
    
  <div class="section" id="contact">
    	<h2>์—ฐ๋ฝ์ฒ˜ ์„น์…˜</h2>
    	<p>์—ฌ๊ธฐ๋Š” ์—ฐ๋ฝ์ฒ˜ ์„น์…˜ ์˜์—ญ์ž…๋‹ˆ๋‹ค. </p>
    </div>
    
</body>
</html>

 

 

ํด๋ฆญํ•˜๋ฉด ์›ํ•˜๋Š” ์„น์…˜์œผ๋กœ ์ด๋™์ด ๊ฐ€๋Šฅํ•˜๋‹ค 

์œ„์— ๋ณด๋ฉด #services๋ผ๊ณ  ๋œจ๋Š” ๊ฒƒ๋„ ํ™•์ธํ•  ์ˆ˜ ์žˆ๋‹ค

 

โ—โ— ์—ฌ๊ธฐ์„œ ๊ถ๊ธˆ์ฆ

๊ทธ๋Ÿผ ์•„๊นŒ style="flex-direction: column;"์„ ์‚ฌ์šฉํ•ด์„œ ๋ฐฉํ–ฅ์„ column์œผ๋กœ ๋ฐ”๊ฟจ๋Š”๋ฐ ๊ทธ๋Ÿผ ์ด๋ ‡๊ฒŒ ์‚ฌ์šฉํ•˜๋ฉด ์•ˆ๋ ๊นŒ? ๋”ฐ๋กœ class๋ฅผ ๋งŒ๋“ค์–ด์ค˜์•ผ ๋ ๊นŒ?

์ด๋ ‡๊ฒŒ๋„ ์‚ฌ์šฉ ๊ฐ€๋Šฅํ•˜๋‹ค๐Ÿ‘

'CSS' ์นดํ…Œ๊ณ ๋ฆฌ์˜ ๋‹ค๋ฅธ ๊ธ€

flex-wrap ์ดํ•ดํ•˜๊ธฐ  (0) 2024.07.04
css ๊ณต๋ถ€  (0) 2024.07.02
[CSS] Flexbox๋ž€?  (0) 2024.07.01

๊ด€๋ จ๊ธ€ ๋”๋ณด๊ธฐ