• 회원가입
  • 로그인
  • 구글아이디로 로그인

[flex] CSS - FlexBox (플렉스박스) 소개 ★★★ - 새로운 반응형 레이아웃 모델 ※ (가로/세로) (기본축/교차축) (중앙정렬/가운데정렬)

목차

  1. FlexBox 예제 3개 - 유연한 반응형 레이아웃
  2. FlexBox 소개/기본용어 ★★★
  3. FlexBox 속성 종류 ★★★
  4. FlexBox 가로/세로 중앙정렬 ★
  5. FlexBox 관련 주소

 

[참고]

※ flexbox (= flexible blox) : 유연한 상자 모델.
※ flexbox는 속성명 아님, 개념 설명 위한 용어임.

※ 맨 아래 (엘리, 1분코딩) 님의 강의 본 후, 공부.

 

FlexBox 예제 3개 - 유연한 반응형 레이아웃

[예제1] - <div> 요소 반응형 레이이웃

 

<style>

.hz {

  display: flex;

  flex-wrap: nowrap;

  background: #3e5ef5;

}


.hz > div {

  background-color: #f1f1f1;

  width: 100px;

  margin: 10px;

  text-align: center;

  line-height: 75px;

  font-size: 30px;

}

</style>


<div class="hz">

  <div>홈</div>

  <div>짱</div>

  <div>닷</div>  

  <div>컴</div>

</div>

 

결과보기


[예제2] - <button> 요소 반응형 레이아웃

 

<style> 

@import url('https://fonts.googleapis.com/css?family=Roboto');


body {

  font-family: 'Roboto';

  color: #2c3e50;

  text-align: center;

}


#quote {

  font-size: 20px;

}


.container {

  display: flex;

  justify-content: space-around;

  flex-wrap: wrap;

}


button {

  margin-top: 20px;

  background: red;

  border: none;

  outline: none;

  height: 40px;

  text-align: center;

  width: 130px;

  border-radius: 40px;

  background: #fff;

  border: 2px solid #1abc9c;

  color: #1abc9c;

  letter-spacing: 1px;

  text-shadow: 0;

  font-size: 12px;

  font-weight: bold;

  cursor: pointer;

  -webkit-transition: all 0.25s ease;

  transition: all 0.25s ease;

      font-family: 'Roboto', sans-serif;

}


button:hover {

  color: white;

  background: #1abc9c;

}

</style>

 

<section class="container">

  <button id="a">HTML</button>

  <button id="b">CSS</button>

  <button id="c">JS</button>

  <button id="d">Homzzang.com</button>

</section>

 

결과보기


[예제3] - <div> 요소 반응형 레이아웃

 

<style>

 .flexbox {

    display: flex;

 }

.column {

    padding: 10px;

    height: 300px;

    background: silver;

    border: 1px solid grey;

}

.column.aside {

    flex: 1;

}

.column.main {

    flex: 2;

 }        

</style>


<article class="flexbox">

    <div class="column main">Main</div>

    <div class="column aside">Aside</div>

</article>

 

결과보기 

 

FlexBox 소개/기본용어 ★★★


※ flexible : 신축적인, 유연한, 융통성있는.

※ flex : (준비운동으로) 몸을 풀다. / 신축적인 전선 

※ flexbox 이해에 필요한 기본 개념.

 

1. 요소 종류

  • container (컨테이너) : 상자(=박스)
  • item (아이템) : 상자 안의 각 요소.

 

2. 정렬축 종류 

  • main axis : 기본축 (= 중심축 = 주축 = 아이템 나열 기본 방향)
  • cross axis : 교차축 (= 반대축 = 횡축 = 아이템 나열 측면 방향)

 


 

1.

float나 position 속성 사용 않고도 손쉽게 반응형 레이아웃 구현 가능.

  • BS4, BS5 : flex 기반 Grid
  • BS3 : float 기반 Grid


2.

Flexbox 이전엔 존재했던 4가지 모드 

  • Block - 단락 용
  • Inline - 글자 용
  • Table - 2차원 데이터 용
  • Position - 요소의 명백한 위치 지정


3.
IE10 이상 주요 최신 브라우저 지원.

※ IE는 -ms- 접두어 붙여야 함.

 

 

FlexBox 속성 종류 ★★★

[Container 용 플렉스 속성] - '속성(C)'로 표시

 

  • display 속성(C) : 플렉스 사용 여부. (예) selector {display:flex }
  • flex-direction 속성(C) :  아이템 (가로/세로)・(순차/역순) 기본 방향. (초기값: row)
  • flex-wrap 속성(C) : 아이템 줄바꿈 여부. (기본값: nowrap)
  • flex-flow 속성(C) : (flex-direction / flex-wrap) 속성 일괄 지정.
  • justify-content 속성(C) : 기본축 기준해, 아이템 정렬. (기본값: normal)
  • align-items 속성(C) : 교차축 내 아이템 정렬/크기. (기본값: normal)
  • align-content 속성(C) : 교차축 기준해, 아이템 정렬. (※ flex-warp 속성에 의해 줄바꿈 허용된 경우 사용.) (기본값: normal)

 


[Item 용 플렉스 속성] - '속성(I)'로 표시.

 

  • order 속성(I) : 아이템 순서 재조정. (기본값: 0)
  • flex-grow 속성(I) : 컨테이너가 커질 때, 아이템 너비 상대적 증가율 지정. (기본값: 0)
  • flex-shrink 속성(I) : 컨테이너가 작아질 때, 아이템 너비 상대적 감소율 지정. (기본값: 1)
  • flex-basis 속성(I) : 아이템 초기 너비. (기본값: auto)
  • flex 속성(I) : flex-grow, flex-shrink, flex-basis 속성 일괄 정의 단축 속성.
  • align-self 속성(I) : 개별 아이템 별도 정렬. (기본값: auto)

 


PS. flexbox 시스템에서 무시되는 속성

 

  • justify-items 속성 - 인라인축 기준 아이템 수준 모든 아이템 정렬
  • justify-self 속성 - 인라인축 기준 아이템 수준 개별 정렬 정렬

 

 

FlexBox 가로/세로 중앙정렬 ★

 

<style>

.hz {

    width:300px;

    height:200px;

    margin:0 auto; /* 박스 자체 가로 중앙 */

    background-color:yellow;

    display:flex; /* flex 이용해 정렬 선언 */

    justify-content:center; /* 박스 안 기본축 중앙 (보통, 가로축) */

    align-items:center; /* 박스 안 교차축 중앙 (보통, 세로축) */

}

</style>

 

<div class="hz">홈짱닷컴 Homzzang.com</div>

 

결과보기


PS. flex 모델 (가로/세로) 상중하 조절

 

기본축 (보통, 가로)

  • justify-content : flex-start ; /* 좌측 */
  • justify-content : center ; /* 중앙 */
  • justify-content : flex-end ; /* 우측 */

 

교차축 (보통, 세로)

  • align-items : flex-start ; /* 상단 */
  • align-items : center ; /* 중단 */
  • align-items : flex-end ; /* 하단 */

  

 

FlexBox 관련 주소

 

※ 엘리 님 flex 강의 ★

https://youtu.be/7neASrWEFEM

 

※ 1분 코딩 님 flex 강의

https://www.youtube.com/watch?v=eprXmC_j9A4

 

※ 모질라 flex 강의

https://developer.mozilla.org/en-US/docs/Web/CSS/CSS_Flexible_Box_Layout/Basic_Concepts_of_Flexbox

 

※ flex 가이드 (※ 이미지로 설명) ★

https://css-tricks.com/snippets/css/a-guide-to-flexbox/

 

※ flexbox 코딩 게임 ★

https://flexboxfroggy.com/#ko

 



분류 제목
border CSS - border-style 속성 ★ - 테두리모양일괄 (= border-style속성 = 보더스타일속…
box CSS - padding 속성 ★ - 안쪽여백 (= padding속성 = 패딩속성)
box CSS - min-height 속성 - 최소높이 (= 최소세로길이 = min-height속성 = 민하이트속성…
outline CSS - outline-style (아웃라인스타일) - 테두리 외곽 스타일 (상속 X) : (IE8)
intro CSS - @charset 구문 - 스타일시트 인코딩방식 설정 (= 언어셋지정/문자셋지정 = @charset…
selector CSS - :last-child 가상선택자 - 그 부모의 마지막자식요소인 지정요소 (= :last-child…
border CSS - border-left 속성 - 테두리좌측일괄 (= 테두리왼쪽일괄 = border-left속성 = …
selector CSS - :lang() 가상선택자 - 특정언어속성요소 (= 언어선택자 = 랭선택자, IE8)
list CSS - list-style-position 속성 ★ - 리스트 스타일 위치 (= 리스트 마커 위치 = …
box CSS - max-height 속성 - 최대높이 (= 최대세로길이 = max-height속성 = 맥스하이트속…
selector CSS - element>element 자식선택자 ★ - 직접 자식요소만 선택. (요소선택자, IE7)
text CSS - writing-mode 속성 - 텍스트 방향 가로/세로 제어. (= 글쓰기 방향 = 쓰기 모드 제…
animation CSS - animation-iteration-count 속성 - 애니반복횟수 (= 움직임반복횟수, IE10…
func CSS - hsl() 함수 - (색조, 채도, 밝기)로 색상 정의. (= hsl함수 = 에이치에스엘함수/흐슬…
border CSS - border 속성 ★ - 테두리일괄 (= border속성 = 보더속성) (상속X)
background CSS - background-attachment 속성 - 배경이미지 고정 (= background-atta…
selector CSS - :nth-child() 가상선택자 ★ - 그 부모의 n번째 자식요소 (=nth-child선택자 =…
background CSS - background 속성 ★ - 배경 일괄 (= background속성 = 백그라운드속성)
animation CSS - animation-direction 속성 - 애니방향 (= 움직임방향 = 애니메이션디렉션속성, I…
responsive CSS - Responsive Image - (반응형 이미지) ★★★
22/27
목록
찾아주셔서 감사합니다. Since 2012