2017-05-19 1 views
1

응답 3 개의 그리드 레이아웃을 사용하는 임. 하자 각각 33 % 너비, 하나의 그리드/div가 비어 있다면, 내가 다른 50 % 너비로 확장하고 싶습니다, 그리고 2 그리드/div가 비어 있다면, 나는 100 % 너비로 남아 싶습니다. CSS로 순전히 수행 할 수 있습니까?3 개의 그리드가 비어있는 경우 2 개의 다른 그리드를 확장하십시오.

<div class="section group"> 
    <div class="col span_1_of_3"> 
    This is column 1 
    </div> 
    <div class="col span_1_of_3"> 
    This is column 2 
    </div> 
    <div class="col span_1_of_3"> 
    This is column 3 
    </div> 
</div> 


/* SECTIONS */ 
.section { 
    clear: both; 
    padding: 0px; 
    margin: 0px; 
} 

/* COLUMN SETUP */ 
.col { 
    display: block; 
    float:left; 
    margin: 1% 0 1% 1.6%; 
} 
.col:first-child { margin-left: 0; } 

/* GROUPING */ 
.group:before, 
.group:after { content:""; display:table; } 
.group:after { clear:both;} 
.group { zoom:1; /* For IE 6/7 */ } 

/* GRID OF THREE */ 
.span_3_of_3 { width: 100%; } 
.span_2_of_3 { width: 66.13%; } 
.span_1_of_3 { width: 32.26%; } 

/* GO FULL WIDTH BELOW 480 PIXELS */ 
@media only screen and (max-width: 480px) { 
    .col { margin: 1% 0 1% 0%; } 
    .span_3_of_3, .span_2_of_3, .span_1_of_3 { width: 100%; } 
} 

답변

1

flex을 사용하면 쉽게 얻을 수 있습니다. 여기 행동에서 볼 수있는 바이올린 여기 CSS-

.section { 
    display: flex; 
} 
.section .col { 
    flex-grow: 100; 
} 
.section .col:empty { 
    display: none; 
} 

하여이를 달성하는 방법을 간단하게되어 있습니다 - 플렉스 여기 링크입니다 대한 또한 https://jsfiddle.net/schikara/oeb235gu/6/

이, 더 많은 것을 알고 - https://css-tricks.com/snippets/css/a-guide-to-flexbox/

+0

임 div가 완전히 제거되었거나 비어 있지 않은 경우에만 작동합니다. – Alice

+0

': empty'는 공백이 전혀 없으면 작동합니다. 즉, '

'또는 '
'은': empty'이지만 '
'은 없습니다. ('flex : 1;'충분히 넉넉합니다. btw;) –

+0

익명의 펜으로 https://codepen.io/anon/pen/bWQbov;) –

관련 문제