flex를 사용한 탭 만들기

작성자

카테고리:

폭이 가변으로 조종되는 메뉴나 탭을 만들 때 flex를 사용해면 쉽게 처리가 가능합니다.
탭을 포함하는 콘테이너에 display:flex를 적용하고, 콘테이너에 들어가는 요소는 flex:auto를 주면… 끝!!! HTML과 CSS 코드는 다음과 같습니다.
(box-shadow는 영역을 눈으로 확인하기 위해 사용하였고, 실제 코드상 필요없는 부분입니다.)

.container{display:flex;}
.container .child{flex:auto;box-shadow:0 0 1px 1px #69f;}
111
222

그러면 다음과 같은 결과를 얻을 수 있죠.

111
222

.

여기에 테두리 및 배경색을 추가해주면 다음과 같이 간단히 탭을 구현할 수 있습니다.

  • 111
  • 222
  • 111
  • 222
  • 333
  • 111
  • 222
  • 333
  • 444

ul.flex_container{display:flex;list-style:none;border-bottom:1px solid #69f;height:30px;}
ul.flex_container > li{flex:auto;text-align:center;line-height:30px;}
ul.flex_container > li span{display:block;height:29px;border:1px solid #fff;border-bottom:none;background-color:#fff;}
ul.flex_container > li.on span{border:1px solid #69f;border-bottom:none;background-color:#efefef;height:30px;}
  • 111
  • 222
  • 333
$(function(){
    $("ul.flex_container > li").bind("click", flexContainerClick);
});
function flexContainerClick(){
    var me = $(this);
    me.siblings().removeClass("on");
    me.addClass("on");
}

참 쉽죠잉?

코멘트

“flex를 사용한 탭 만들기”에 대한 댓글 1개

  1. […] flex를 사용한 탭 만들기에서 간단한 탭 만드는 방법을 알아봤습니다. 그런데 스마트폰에서 볼때는 의도한 데로 표시되지 않는 것을 볼 수 있습니다. 이는 모바일 브라우저에서 인식하는 스타일이 다르기 때문으로, 다음과 같이 -webkit- 접두어를 추가해 주면 됩니다. […]

답글 남기기

이메일 주소는 공개되지 않습니다. 필수 필드는 *로 표시됩니다