2015-03-30 3 views
0

как я могу сделать все divs попадающими на ту же строку и заполнить div # 2 пробелом между левым плавающим div # 1 и правым поплавком div # 3? QuestionDiv заполнить пробел между 2 divs

+0

Пожалуйста, добавьте свой код html и css для этого простого примера – Huangism

ответ

0

Вы можете использовать display: table для такого рода реализации (примечание это не с помощью таблиц для разметки):

html, 
 
body { 
 
    margin: 0; 
 
    padding: 0; 
 
} 
 
.wrap { 
 
    display: table; 
 
    width: 100vw; 
 
} 
 
.one { 
 
    display: table-cell; 
 
    height: 50px; 
 
    width: 20%; 
 
    background: red; 
 
} 
 
.two { 
 
    display: table-cell; 
 
    height: 50%; 
 
    width: 60%; 
 
    background: cornflowerblue; 
 
} 
 
.three { 
 
    display: table-cell; 
 
    background: lime; 
 
    height: 50px; 
 
}
<div class="wrap"> 
 
    <div class="one"></div> 
 
    <div class="two"></div> 
 
    <div class="three"></div> 
 
</div>

Обратите внимание, как я не установил ширину на последнем элементе, но это заполнение остальное пространство доступно?

+1

Спасибо, даже лучшее решение, когда таблицы поддерживаются всеми браузерами! – user3519221

0

Вот фиктивная реализация:

<div id="l"></div> 

<div id="r"></div> 

<div id="c"></div> 

<style> 
#l { 
float: left; 
width:30%; 
} 
#r { 
float: right; 
width: 30%; 
} 
#c { 
margin: 0 auto; 
width: 40%; 
} 
</style> 
+0

Но что, если первый и последний div должны иметь ширину, заданную пикселями, а не процентом? – user3519221

+0

@ user3519221 Если ширина контейнера установлена ​​вами (например, 1024px или 960px), вы можете вычислить ее аналогичным образом (30% от ширины контейнера до 2 div и 40% от ширины контейнера до 1 центрального div). Если нет, то вы можете использовать javascript для вычисления ширины экрана и применения такой же логики выше. – mehulmpt

0

Может быть flex поможет, вот JSFiddle.

HTML

<div class="parent"> 
    <div class="div1"></div> 
    <div class="div2"></div> 
    <div class="div3"></div> 
</div> 

CSS

.parent { 
    display: -webkit-flex; 
    display: flex; 
} 
.div1 { 
    width: 30px; 
    height: 30px; 
    background: #FFCC99; 
} 
.div3 { 
    width: 30px; 
    height: 30px; 
    background: #FCF305; 
} 
.div2 { 
    -webkit-flex: auto; 
    flex: auto; 
    height: 30px; 
    background: #CCFFCC; 
} 
+0

Спасибо, это то, что я искал! – user3519221

+0

@ user3519221: Просто будьте осторожны с flexbox, поскольку некоторые считают, что он еще не готов к производству [из-за совместимости браузера] (http://caniuse.com/#search=flexbox), среди нескольких других причин ... – jbutler483

Смежные вопросы