안녕하세요
flexbox사용법을 소개합니다.
flexbox는 점점 대세가 되어갈 레이아웃을 잡는 방법입니다.
기존에는 float left, right, display : table-cell 심지어 css에 *을 붙여 핵을 쓰기도 했었습니다.
이제 반응형을 포함하여 모든 브라우저에 동일하게 레이아웃을 잡을 수 있습니다.
이제 flexbox 사용법과 관련 속성을 설명합니다
부모태그에 display : flex;를 줍니다. (display : inline-flex;도 가능)
<div class='parentNode'>
<span>bizXpress</span>
<span>webponent</span>
</div>
.parentNode {
display: flex;
}
여기에 부모에 줄수 있는 css 속성들이 몇가지 있습니다.
flex-direction: row || column || row-reverse || column-reverse;
-- 자식요소들의 방향
flex-wrap: wrap || no-wrap || wrap-reverse;
-- 자식들이 늘어나서 부모가 넘칠경우, 줄바꿈을 할지의 여부
justify-content: flex-start || flex-end || center || space-between || space-around
-- 정렬기능입니다. 좌우 간격을 동일하게 놓거나 자식이 모든 간격값을 동일하게 가질수도 있습니다
align-items: flex-start || flex-end || center || stretch || baseline
-- 세로 정렬이라고 생각하면 됩니다.
자식들(item)에 줄 수 있는 속성들입니다.
order : html을 변경하지 않고, css로 재정렬(sortable)할 수 있다.
flex-grow : 여분의 공간이 있을 때 확장시켜준다 ( 0 or 1 )
flex-shrink : 여분의 공백이 없다면 축소 시킨다. ( 0 or 1 )
flex-basis : 초기 크기를 지정한다. grow나 shrink보다 앞서 계산되며 width값이 같는 값을 취한다.
flex shorthand : grow, shrink, basis 를 동시에 수행한다. ex) flex: 0 1 auto;
여기까지는 굉장히 많은 양의 내용들을 압축해서
요점만 설명한 내용입니다.
조금더 세밀하게 컨트롤할 수 있는 align-self 속성을 소개하고 글을 마치겠습니다.
align-items 속성은 플렉스 내의 아이템들을 일괄적으로 정렬시켜줍니다.
그런데 특정 아이템 하나만 다른 효과를 주고 싶을때 align-self 속성을 사용합니다.
align-self 속성은
auto || flex-start || flex-end || center || baseline || stretch
의 값을 가집니다.
각각의 값들은 플렉스 내에서 어디에 위치하는지를 보여줍니다.
예를 들어 세번째 아이템에
align-self: flex-end;
를 적용하면 이렇게 됩니다.
<ul>
<li>I am 1</li>
<li>I am 2</li>
<li class="now">I am 3</li>
<li>I am 4</li>
</ul>
ul {
display: flex;
border : 1px solid blue;
padding: 0;
height: 300px;
}
li {
border: 1px solid red; padding: 10px; list-style: none; height: 50px;
}
.now {
align-self: flex-end;
}
(js fiddle을 사용하였습니다)
flex-end를 적용하여 특정 아이템만 컨트롤 했습니다.
이런식으로 center, baseline, stretch 등을 사용한다면
세밀한 작업도 진행할 수가 있습니다.
위 글은
https://medium.freecodecamp.com/understanding-flexbox-everything-you-need-to-know-b4013d4dc9af#.jrh1olct9
을 참고하였습니다.
'프론트엔드' 카테고리의 다른 글
CSS vs JS Animation: Which is Faster? (0) | 2017.03.28 |
---|---|
API Security - (RESTful) API 구현시 보안처리 방법 (0) | 2017.03.15 |
마이크로서비스(Microservices) 기술 뉴스 (0) | 2017.02.08 |
html 5.1을 소개합니다. (0) | 2017.01.25 |
d3.js 를 이용하여 차트 그리기(easy) (0) | 2017.01.09 |