CSS

12. Flex 레이아웃(flex-direction)

HJ76 2023. 4. 1. 13:35
flex-direction
  • 플렉스 요소들이 배치되는 축의 방향을 결정하는 속성
  • row : 기본값, 가로로 배치
  • row-reverce : 가로로 배치(반대로)
  • colum: 세로로 배치
  • column-reverce : 세로로 배치(반대로)
row
선택자 {
	display: flex;
	flex-direction: row;
}
<!DOCTYPE html>
<html lang="en">
<head>
    <meta charset="UTF-8">
    <meta http-equiv="X-UA-Compatible" content="IE=edge">
    <meta name="viewport" content="width=device-width, initial-scale=1.0">
    <title>플렉스 레이아웃</title>
    <style>
        #container {
            width: 1000px;
            height: 500px;
            margin: 0 auto;
            border: 3px solid red;
            display: flex;
            flex-wrap: wrap;
            flex-direction: row; /* 기본값 */
        }
        #container > div{
            width: 400px;
            border: 1px solid black;
            background-color: gold;
        }
        span{
            font-size: 50px;
            font-weight: bold;
            padding: 20px;
        }
    </style>
</head>
<body>
    <h2>플렉스 레이아웃</h2>
    <div id="container">
        <div id="box1"><span>1</span></div>
        <div id="box2"><span>2</span></div>
        <div id="box3"><span>3</span></div>
    </div>
</body>
</html>

가로로 배치됨

row-reverce
선택자 {
	display: flex;
	flex-direction: row-reverce;
}
<!DOCTYPE html>
<html lang="en">
<head>
    <meta charset="UTF-8">
    <meta http-equiv="X-UA-Compatible" content="IE=edge">
    <meta name="viewport" content="width=device-width, initial-scale=1.0">
    <title>플렉스 레이아웃</title>
    <style>
        #container {
            width: 1000px;
            height: 500px;
            margin: 0 auto;
            border: 3px solid red;
            display: flex;
            flex-wrap: wrap;
            flex-direction: row-reverse; /* row-reverse */
        }
        #container > div{
            width: 400px;
            border: 1px solid black;
            background-color: gold;
        }
        span{
            font-size: 50px;
            font-weight: bold;
            padding: 20px;
        }
    </style>
</head>
<body>
    <h2>플렉스 레이아웃</h2>
    <div id="container">
        <div id="box1"><span>1</span></div>
        <div id="box2"><span>2</span></div>
        <div id="box3"><span>3</span></div>
    </div>
</body>
</html>

가로로 배치되고, 반대로 배치됨

colum
선택자 {
	display: flex;
	flex-direction: column;
}
<!DOCTYPE html>
<html lang="en">
<head>
    <meta charset="UTF-8">
    <meta http-equiv="X-UA-Compatible" content="IE=edge">
    <meta name="viewport" content="width=device-width, initial-scale=1.0">
    <title>플렉스 레이아웃</title>
    <style>
        #container {
            width: 1000px;
            height: 500px;
            margin: 0 auto;
            border: 3px solid red;
            display: flex;
            flex-wrap: wrap;
            flex-direction: column; /* column */
        }
        #container > div{
            width: 400px;
            border: 1px solid black;
            background-color: gold;
        }
        span{
            font-size: 50px;
            font-weight: bold;
            padding: 20px;
        }
    </style>
</head>
<body>
    <h2>플렉스 레이아웃</h2>
    <div id="container">
        <div id="box1"><span>1</span></div>
        <div id="box2"><span>2</span></div>
        <div id="box3"><span>3</span></div>
    </div>
</body>
</html>

세로로 배치됨

column-reverse
선택자 {
	display: flex;
	flex-direction: column-reverse;
}
<!DOCTYPE html>
<html lang="en">
<head>
    <meta charset="UTF-8">
    <meta http-equiv="X-UA-Compatible" content="IE=edge">
    <meta name="viewport" content="width=device-width, initial-scale=1.0">
    <title>플렉스 레이아웃</title>
    <style>
        #container {
            width: 1000px;
            height: 500px;
            margin: 0 auto;
            border: 3px solid red;
            display: flex;
            flex-wrap: wrap;
            flex-direction: column-reverse; /* column-reverse */
        }
        #container > div{
            width: 400px;
            border: 1px solid black;
            background-color: gold;
        }
        span{
            font-size: 50px;
            font-weight: bold;
            padding: 20px;
        }
    </style>
</head>
<body>
    <h2>플렉스 레이아웃</h2>
    <div id="container">
        <div id="box1"><span>1</span></div>
        <div id="box2"><span>2</span></div>
        <div id="box3"><span>3</span></div>
    </div>
</body>
</html>

세로로 배치되고, 반대로 배치됨


flex-flow
  • flex-wrap과 flex-direction을 한꺼번에 지정할 수 있는 속성
/* 예시 */
선택자 {flex-flow: row nowrap;}