2014-03-26 2 views
1

브라우저의 탭과 비슷한 UI를 만들고 싶습니다.자식 수를 기준으로 자식 크기 조정

width: 20%; 
max-width: 150px; 

니스와 간단한, 반응 및 최고 :이를 위해

, 나는이 CSS와 요소를 가지고있다.

그러나 5 개의 탭만 지원합니다. 10 개의 탭을 지원하려면 width: 10%으로 변경하는 것만 큼 쉽습니다. 그런 일이 가능했던 경우

width: calc(100%/number-of-children) 

, 그 놀라운 것 :

그래서 기본적으로 내가 좋아하는 뭔가를 원한다.

현재 JavaScript를 사용하여 너비를 위의 식으로 설정하고 있습니다. 간단하고 기능적이지만, CSS 전용 솔루션을 아는 사람이 있는지 물어볼 것입니다.

답변

3

display: flex. 예 :

마크 업

<section> 
    <div>tab 1</div> 
    <div>tab 2</div> 
    <div>tab 3</div> 
    <div>tab 4</div> 
</section> 

CSS는

section { 
    display: flex; 
} 

div { 
    flex-grow: 1; 
    max-width: 150px; 
} 

Codepen 예 : http://codepen.io/anon/pen/EGbpH/

+0

우아하게 작성 솔루션의 수를 알고 생각합니다. – Incredulous

+0

와우 ... 과거에 플렉스를 사용했는데 어떻게 잊을 수 있었습니까? XD Oh 맞아 ... 왜냐하면 크롬이 엉망으로 실패했기 때문에 JS 계산 된 너비에 찬성하여 그것을 떨어 뜨 렸기 때문에 ... 지금까지는 해결되었을 수도 있습니다. 어쨌든,이 사실을 상기시켜 줘서 고마워. –

2

display: table은 (는) 친구입니다. CSS3에서

ul { 
    display: table; 
    width: 100%; 
} 

li { 
    display: table-cell; 
} 

Demo

1

는 CALC (라는 함수)있다 그래서 당신은

width: calc(100%/10); 

Here you can find 문서 등을 사용할 수있는 브라우저 지원이) 당신이 사용할 수 CSS3

+1

나는 그의 문제가 사전에 탭 – fcalderan

관련 문제