Day4 VSCODE_CSS Flex

2023. 3. 30. 17:05CSS

🟡Flex 레이아웃

- 수평정렬을 하기 위한 속성
- 사용법: display: Flex

 

🟡Flex-wrap

-플렉스 라인에 여유가 없을 때 플렉스 요소의 위치를 결정하는 속성

-no-wrap: 기본값. 플렉스 요소가 다음줄로 넘어가지 않음. 요소의 너비를 줄여 한 줄에 배치
-wrap: 플렉스 요소의 여유 공간이 없다면 다음줄로 넘김
-wrap-reverce: 플렉스 요소의 여유 공간이 없다면 다음줄로 넘김(단 -위쪽으로 넘김)

<title>플렉스 레이아웃1</title>
    <style>
        #container{
            width: 1000px;
            height: 500px;
            margin: 0 auto;
            border: 3px inset purple;
            display: flex;
            flex-wrap: nowrap;
            /*flex-wrap: wrap;*/
            /*flex-wrap: wrap-reverse;*/
            /*flex-direction: row-reverse; 가로 반대로*/
            /*flex-direction: column;*/
            /*flex-direction: 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>플렉스 레이아웃1</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>​

예시) nowr

 

🟡Flex-direction

-플렉스 요소들이 배치되는 축의 방향을 결정하는 속성
-row: 기본값 (가로배치) -row-reverce: 가로배치(반대로)
-column: 세로배치 -column-reverse: 세로배치 반대로

 


 

🟡Flex-flow

-flex-wrap과 flex-direction을 한번에 지정할 수 있음

-flex-flow: row nowrap;

🟡justify-content

-플렉스 요소의 수평방향 정렬방식 설정

- flex-start: 기본값, 앞쪽에서부터 배치
- flex-end: 뒤에서부터 배치
- center: 가운데 배치
-space-between: 요소들 사이에 여유 공간을 두고 배치(앞뒤 양쪽에 요소를 붙임)
-space-around: 요소들 사이에 여유 공간을 두고 배치(앞뒤 약간의 공간을 둠)


예시) 1번  센터 | 2번 엔드 | 3번 space-between | 4번 space-around

    <title>플렉스 레이아웃2</title>
    <style>
        .wrapper{
            width: 500px;
            height: 200px;
            margin: 0 auto;
            border: 3px solid red;
        }
        
        .wrapper div{
            width: 50px;
            border: 2px solid black;
            background-color: gold;
        }
        
        #container{
            display: flex;
            justify-content: center;
            justify-content: end;
            justify-content: space-between;
            justify-content:space-around;
            align-items: stretch; /*기본값*/
            align-items: flex-start;
            align-items: flex-end;
            align-items: center;
            align-items: baseline;
           
        }
        #box2{
            align-self: flex-end; /*혼자 밑으로 내려감*/
        }

        #box1{
            order:5; /*다섯번째로 이동*/
        }
        #box2{order:1;}
        #box3{order:4;}
        #box4{order:2;}

    </style>
</head>
<body>
    <h1> justify-content/align-self/order</h1>
    <div id="container" class="wrapper">
        <div id="box1">
            <p>1</p>
        </div>
        <div id="box2">
            <p>2</p>
        </div>
        <div id="box3">
            <p>3</p>
        </div>
        <div id="box4">
            <p style="font-size: 50px;">4</p>
        </div>
        <div id="box5">
            <p>5</p>
        </div>
    </div>
    
</body>
</html>​

 


align-items

 

🟡align-items

- 플렉스 요소의 수직방향 정렬 방식을 설정

stretch: 기본값.아이템들이 수직축 방향으로 늘어남
flex-start: 요소들이 시작점으로 정렬
flex-end: 요소들이 끝으로 정렬
center: 요소들이 가운데로 정렬
baseline: 요소들이 텍스트 베이스라인 기준으로 정렬

 

🟡align-self

- 플렉스 요소에 수직축으로 다른 align 속성 값을 설정

🟡order

- 플렉스 요소의 순서를 결정

🟡align-content

- 플렉스 요소가 설정된 상태에서 요소들이 2줄이상 되었을 때 수직방향 정렬방식 결정
-flex wrap으로 설정해줘야함!
stretch: 기본값. 위 아래로 늘어남
flex-start: 요소들이 시작점으로 정렬
flex-end: 요소들이 끝으로 정렬
center: 요소들이 가운데로 정렬
baseline: 요소들이 텍스트 베이스라인 기준으로 정렬
🟡flex-basis - 플렉스 요소를 flex-basis의 설정한 값보다 커질수 있는지를 결정할 수 있는 속성
🟡flex-grow - 플렉스 요소를 flex-basis의 설정한 값보다 커질수 있는지를 결정할 수 있는 속성
🟡flex-shrink - 플렉스 요소를 flex-basis의 설정한 값보다 작아질 수 있는 지를 결정하는 속성
🟡flex - flex-grow / flex-basis / flex-shrink를 한번에 설정할 수 있음
728x90