CSS

CSS 활용예시(flex02★)

goshek 2024. 7. 29. 14:24
<!DOCTYPE html>
<html lang="en">
<head>
    <meta charset="UTF-8">
    <meta name="viewport" content="width=device-width, initial-scale=1.0">
    <title>Document</title>
    <style>
        .container{
            display: flex;
            margin: 10px auto;
            padding: 10px;
            border: 1px solid #ccc;
            width: 80%;
            justify-content: space-around;
            align-items: flex-start;
            flex-wrap: nowrap;
        }

        .item{
            background-color: rgb(227, 167, 13);
            padding: 20px;
            margin: 5px;
            border: 1px solid #000;
            text-align: center;
            min-width: 50px;
        }

        .example1 .flex-1{
            flex:1;
        }

        .example1 .flex-2{
            flex:2;
        }
       
        .example1 .flex-3{
            flex:0.5;
        }

        /*
            최소 크기값 200px이후 남은 부분이 200px이라 가정했을 때
            200px을 1:2:1 비율로 분할 50, 100, 50
        */

        .example2 .flex-1-min{
            flex: 1 200px
        }

        .example2 .flex-2-min{
            flex: 2 200px
        }

        .example2 .flex-3-min{
            flex: 1 200px
        }

        /* flex 속성: flex grow/ shrink/ basis속성의 약칭(한번에 작성) */
        /* grow속성: 늘어나는 비율을 지정 */
        .example3 .grow-1{
            flex-grow: 1;
        }
        .example3 .grow-2{
            flex-grow: 2;
        }
        .example3 .grow-3{
            flex-grow: 3;
        }

        .box{
            flex-grow: 1;
            flex-basis: 200px;
            margin: 5px;
            text-align: center;
            line-height: 100px;
            color: white;
        }
        #shrink{
            display:flex;
            color: white;
        }
        /* shrink속성: 줄어드는 비율을 지정 */
        .shrink-1{
            background-color: red;
            flex-shrink: 1;
        }
        .shrink-2{
            background-color: green;
            flex-shrink: 2;
        }
        .shrink-3{
            background-color: blue;
            flex-shrink: 3;
        }

        /* basis속성: 아이템의 기본 크기를 지정 */
        .example5 .basis-1{
            flex-basis: 100px;
        }
        .example5 .basis-2{
            flex-basis: 200px;
        }
        .example5 .basis-3{
            flex-basis: 300px;
        }

        #shrink {
      display: flex;
      width: 300px;
      border: 1px solid black;
    }
    </style>
</head>
<body>
    <h1>Flexbox</h1>
    <section>
        <!--
            !flex-grow: 남은 여분의 공간을 어떻게 채울지 결정

            !felx-shrink: 줄어드는 공간의 속도를 결정

            !flex-basis: 공간의 크기 베이스를 설정
        -->
        <div class="container example1">
            <div class="item flex-1">1</div>
            <div class="item flex-2">2</div>
            <div class="item flex-3">3</div>
        </div>

        <div class="container example2">
            <div class="item flex-1-min">1</div>
            <div class="item flex-2-min">2</div>
            <div class="item flex-3-min">3</div>
        </div>

        <p>grow</p>
        <div class="container example3">
            <div class="item grow-1">1</div>
            <div class="item grow-2">2</div>
            <div class="item grow-3">3</div>
        </div>

        <p>shrink</p>
        <div id="shrink">
            <div class="box shrink-1">1</div>
            <div class="box shrink-2">2</div>
            <div class="box shrink-3">3</div>
        </div>

        <p>basis</p>
        <div class="container example5">
            <div class="item basis-1">1</div>
            <div class="item basis-2">2</div>
            <div class="item basis-3">3</div>
        </div>
    </section>
</body>
</html>

'CSS' 카테고리의 다른 글

CSS 활용예시(transition)  (0) 2024.07.30
CSS 활용예시(flex03★)  (0) 2024.07.29
CSS 활용예시(flex01★)  (0) 2024.07.29
HTML, CSS 연습 문제  (0) 2024.07.29
CSS활용예시(background)  (0) 2024.07.29