2015-06-22 96 views
0

我在页脚中有三个框,divs以相同的宽度左移。 设计非常灵敏,所以我将每个尺寸调整为33%。如何在响应式视图中按百分比填充剩余宽度?

但我想隐藏一个较小的屏幕,这意味着只剩下两个(每个50%)。如何确保填充所需的空间,而无需为每个屏幕尺寸声明宽度?

为了说清楚,如果删除一个单元格,我希望它具有与表格单元格相同的行为:如果指定了表格宽度,则每个单元格都适合等宽。但浮动divs不。

+0

你可以为同样的小提琴 – stanze

回答

0

您可以隐藏最后一个孩子,并以这种方式将框设置为50%的宽度。

.box { 
 
    float: left; 
 
    width: 33.3%; 
 
} 
 
@media (max-width: 768px) { 
 
    .box { 
 
    width: 50%; 
 
    } 
 
    .box:last-child { 
 
    display: none; 
 
    } 
 
}
<div class="footer"> 
 
    <div class="box"> 
 
    Content1 
 
    </div> 
 
    <div class="box"> 
 
    Content2 
 
    </div> 
 
    <div class="box"> 
 
    Content3 
 
    </div> 
 
</div>

+0

是的谢谢,但我仍然必须声明,对于每一个屏幕尺寸,我呢? – Farkas

+0

不,它可以适用于768px以下的每个屏幕宽度。 –

+0

是的,这是一个很好的解决方案 - 谢谢! – Farkas

0

您可以使用CSS3的Flex。但它在旧版IE中不起作用。

#main { 
 
    width: 100%; 
 
    height: 100px; 
 
    border: 1px solid black; 
 
    display: -webkit-flex; /* Safari */ 
 
    display: flex; 
 
} 
 

 
#main div { 
 
    -webkit-flex: 1; /* Safari 6.1+ */ 
 
    -ms-flex: 1; /* IE 10 */  
 
    flex: 1; 
 
} 
 

 
@media only screen and (max-width:767px){ \t 
 
    #main div:last-child{display:none;} 
 
}
<div id="main"> 
 
    <div style="background-color:coral;">RED</div> 
 
    <div style="background-color:lightblue;">BLUE</div> 
 
    <div style="background-color:lightgreen;">Green div with more content.</div> 
 
</div>

0

你可以使用任何Flexbox位置(在现代的浏览器),或者display: table-*;(因为IE8无处不支持)

http://codepen.io/anon/pen/BNwXdb


标记

<footer class="flexbox"> 
    <div>1</div> 
    <div>2</div> 
    <div>3</div> 
</footer> 

<footer class="table"> 
    <div>1</div> 
    <div>2</div> 
    <div>3</div> 
</footer> 

CSS

/* Using Flexbox */ 
.flexbox { display: flex; } 
.flexbox div { flex-grow: 1; } 

/* Using display: table-* */ 
.table { display: table; width: 100%; } 
.table div { display: table-cell;} 


/* e.g. hide last column when viewport width <= 600px */ 
@media all and (max-width: 600px) { 
    footer div:last-child { 
     display: none; 
    } 
} 

无这些方法需要设置的宽度。