프론트엔드 개발자가 가져야할 중요한 능력 중에 하나가 바로 레이아웃을 잡는 것이다. 애플리케이션에 대한 디자인 및 구조 설계는 건물의 뼈대를 짓는 것 만큼 프로젝트에 있어 중요한 과정입니다.
일반적으로 웹 페이지의 레이아웃은 CSS의 display, float, position 등과 같은 속성을 사용해 구현했었다. 하지만 Flexbox를 이용하면 더욱 유연하게 요소들을 배치할 수 있습니다.
flexbox는 뷰포트나 요소의 크기가 불명확하거나 동적으로 변할 때에도 효율적으로 요소를 배치, 정렬, 분산할 수 있는 방법을 제공하는 CSS3의 새로운 레이아웃 방식입니다.
flexbox에는 부모요소에 적용한는 속성과 자식요소에 적용하는 속성이 따로 존재합니다.
우선, Flexbox를 만드는 방법은 부모요소에 diplay 속성에 'flex'값을 넣어주면 됩니다.
.parents {
display : flex;
}
위에서 표현한 flex 속성은 flex item의 크기와 관련된 속성이며, 다음과 같이 flex-grow 속성과 flex-shrink 속성, flex-basis 속성을 축약한 표현입니다.
위의 표현을 코드로 표현하자면 다음과 습니다.(flex-item의 기본 값)
.flex-item {
flex-grow: 0;
flex-shrink: 1;
flex-basis: auto;
}
justify-content 속성은 주축을 기준으로 flex item을 수평으로 정렬한다. 다음과 같은 5개의 속성 값으로 다양한 수평 정렬 레이아웃을 만들 수 있습니다.
align-items 속성은 주축을 기준으로 flex item을 수직으로 정렬한다. 다음과 같은 5개의 속성 값으로 다양한 수직 정렬 레이아웃을 만들 수 있습니다.
align-content 속성은 flex item이 여러 줄로 나열되어 있을 때 주축을 기준으로 수직 정렬 방법을 설정하는 속성입니다. align-content 속성에 사용할 수 있는 속성값은 다음과 같습니다.
flex-wrap은 flex item이 flex container를 벗어났을 때 줄을 바꾸는 속성입니다. white-space 속성과 동일하게 작동합니다. 속성의 기본값인 nowrap은 flex item의 전체 크기가 flex container보다 커져도 줄을 바꾸지 않고 한 줄로 flex item을 배치합니다.
reference : https://d2.naver.com/helloworld/8540176
와이어프레임은 앱 또는 애플리케이션을 개발할 때 시간적인 레이아웃을 그리는 단계를 말한니다. 단순하게 레이아웃과 제품 구조를 보여주는 용도로 사용합니다.
목업은 실물 크기의 모형을 뜻하며, 목업은 실제 제품이 작동하는 모습과 동일하게 HTML 문서 내에 하드코딩하는 방식입니다.
목업 단계를 건너뛰고, 애플리케이션의 기능을 구현 할 수도 있겠지만 만들 수 있지만, 한눈에 구조를 이해할 수 있는 설계도를 먼저 만드는 것이 더 효율적으로 작업을 완성하는 방법이 될 것입니다.