ABOUT ME

-

Today
-
Yesterday
-
Total
-
  • 23_09_26 CSS공부정리
    개발공부/CSS 2023. 9. 26. 23:29

    https://www.youtube.com/watch?v=2htMvJdW9O0&t=471s 

    [생활코딩] flexbox

    -display:flex를 지정하면 콘텐츠가 다음과같이 바뀜

    flex지정 전
    부모 태그(div container)에 flex지정후

    -부모태그에 height를 지정하면 그에 따라 자식태그도 같이 늘어남

    -ol태그에 width값 을 지정하면 너비도 조절가능.(but width보다 flex-basis를 더 많이 사용함)

    .container의 height : 300px / ol의 width : 100px

    -flex-basis를 width와 동일하게 사용할 수 있음

    flex-basis : 100px;

    -justify-content : center(end) = 부모태그에 입력해서 안의 내용들을 가운데(오른쪽)정렬할 수 있음

    justify-content : center;

     -flex-direction : row(column) = flex 방향을 지정 / row냐 colum이냐에 따라 이후의 속성값이 다르게 동작함

    -row = 하나의 행에 자식들을 수평으로 배치(행의 방향으로 배치. →)

    -column = 하나의 column에 자식들을 수직으로 배치한다. (열의 방향으로 배치. ↓)

    flex-direction : row 세로방향
    flex-direction : column 가로방향

    -justify-content : end를 했을때 row와 column은 다음과 같이 표현됨 / 주축배치

    위쪽이미지 : row 행의 끝방향 / 아래쪽이미지 : column 열의 끝방향
    주축과 교차축

    -justify-content의 속성은 주축을 기준으로 배치하는것을 결정한다

    -start, end, center, space-around 등을 값으로 지정할 수 있다.

    https://developer.mozilla.org/ko/docs/Web/CSS/justify-content

     

    justify-content - CSS: Cascading Style Sheets | MDN

    CSS의 justify-content 속성은 브라우저가 콘텐츠 항목 사이와 주변의 공간을 플렉스 컨테이너에서는 main-axis, 그리고 그리드 컨테이너에서는 인라인 축을 기준으로 어떻게 정렬할 것인지를 정의합니

    developer.mozilla.org

    -align-items = 교차축방향으로 정렬하는 속성( align-items : stretch 가 기본)

    align-items : stretch;
    align-items : start;
    align-items : end;
    align-items : center;

    -justify-content와 align-items를 center로 하면 가운데정렬을 쉽게 할 수 있음

    justify-content: center; / align-items : center;

    -flex-basis : 주축방향으로 크기를 증가시킴

    flex-basis : 30px/60px/90px을 각각 적용

    -flex-grow : 주축방향으로 여백을 남김 없이 활용하도록 하는 속성(여백이 많을때 사용하는 속성)

    -아래 예시는 flex-grow를 통해 div one,two,three 를 1:2:3 비율로 맞춤

    flex-grow : 1/2/3을 각각적용

    -flex-basis와 flex-grow를 같이 활용하는 예시

    div three에 flex-grow값을 1로 주면서 나머지 여백을 모두 차지하게 함

    해당 코드

            .one{
                border:10px solid blue;
                flex-basis :30px;
                flex-grow : 0;
            }
            .two{
                border:10px solid green;
                flex-basis :60px;
                flex-grow : 0; //여기서 1을 주면 two와 three가 one이 차지한 공간을 제외하고 나머지공간을 1:1로 가져감
            }
            .three{
                border:10px solid pink;
                flex-basis :90px;
                flex-grow : 1; //1을 줌으로써 나머지 여백을 다 차지하게 만듬
            }

    -flex-shrink 

    원래는 페이지 창이 줄어들면서 flex박스들은 비율에 맞게 크기가 조정됨.

    이 크기조정에 대해 박스들이 줄어드는 비율을 조정하는 속성.

    다양한값을 지정하여 줄어드는 비율을 설정가능(ex)0,1,2,3..)

            .one{
                border:10px solid blue;
                flex-basis :200px;
                /* flex-grow : 0; */
                flex-shrink : 0; //페이지가 작아져도 줄어들지 않는 박스
            }
            .two{
                border:10px solid green;
                flex-basis :200px;
                /* flex-grow : 1; */
                flex-shrink : 0; //페이지가 작아져도 줄어들지 않는 박스
            }
            .three{
                border:10px solid pink;
                flex-basis :300px;
                flex-shrink : 1; //페이지가 작아지면 줄어드는 박스
                /* flex-grow : 1; */
            }
            .one{
                border:10px solid blue;
                flex-basis :300px;
                /* flex-grow : 0; */
                flex-shrink : 1;
            }
            .two{
                border:10px solid green;
                flex-basis :300px;
                /* flex-grow : 1; */
                flex-shrink : 1;
            }
            .three{
                border:10px solid pink;
                flex-basis :600px;
                flex-shrink : 2
                /* flex-grow : 1; */
            } //1:1:2의 비율로 줄어드는 박스들을 볼 수 있음

    -basis : 기본크기 / grow : 남는 여백 분배 / shrink : 부족한 여백을 어떻게 각출할것인가

     

    -flex-wrap = 여백이 부족할때 박스를 줄바꿈해주는 기능. 부모태그에 flex-wrap:wrap;을 통해 가능

    축소전(row방향)

     

    축소후. three박스가 여백이 없어 밑으로 줄바꿈 됨.

            .container{
                display : flex;
                /* justify-content: center; */
                /* align-items : center; */
                flex-wrap : wrap; //해당 부분. 부모태그에 붙여야함.
                height: 300px;
                border:10px solid red;
                margin: 10px;
            }
            .row {
                flex-direction: row;
            }
            .one{
                border:10px solid blue;
                flex-basis :300px;
                /* flex-grow : 0; */
                /* flex-shrink : 1; */
            }
            .two{
                border:10px solid green;
                flex-basis :300px;
                /* flex-grow : 1; */
                /* flex-shrink : 1; */
            }
            .three{
                border:10px solid pink;
                flex-basis :600px;
                /* flex-shrink : 2; */
                /* flex-grow : 1; */
            }

    -키워드

    display : flex = 부모태그에 넣기

    justify-content = 주축방향으로 배치

    align-items = 교차축방향으로 배치

    flex-direction : row, column = flex박스들이 배치될 방향결정

    flex-basis = 기본크기 크기결정

    flex-grow = 남는 여백 분배

    flex-shrink = 줄어드는 비율설정

    flex-wrap = 페이지축소시 줄바꿈설정 (부모태그에)

     

    -활용방안

    사진첩에 들어갈 사진들을 flex박스로 지정하면 좋을것 같다.

     

    '개발공부 > CSS' 카테고리의 다른 글

    23_10_15 CSS 공부정리  (0) 2023.10.15
    23_10_14 CSS 공부정리  (4) 2023.10.15
    23_10_13 CSS 공부정리  (1) 2023.10.14
    23_10_12 CSS 공부정리  (0) 2023.10.13
    23_10_11 CSS공부정리  (0) 2023.10.12
Designed by Tistory.