2017-11-27 6 views
-2

私は4つのdivを持っています。CSS - インラインdivsサイズ

1 - Divs '.left'と'right 'は150px分である必要があります。 - >OK

2 - divを '.middle1' と' .middle2' はそれらで割っ で残りを取得する必要があります。 - >NOT OK

なぜ「.middle2」と「.right」の間に空白がありますか?

.container { 
 
    width: 100%; 
 
    display: table;  
 
} 
 
.left { 
 
    float: left; 
 
    display: table-cell; 
 
    padding: 0; 
 
    background-color: red; 
 
    height: 30px; 
 
    width: 15%; 
 
    min-width:150px; 
 
} 
 
.middle1 { 
 
    float: left; 
 
    display: table-cell; 
 
    padding: 0; 
 
    background-color: blue; 
 
    height: 30px; 
 
    width: 35%; 
 
} 
 
.middle2 { 
 
    float: left; 
 
    display: table-cell; 
 
    padding: 0; 
 
    background-color: grey; 
 
    height: 30px; 
 
    width: 35%; 
 
} 
 
.right { 
 
    display: table-cell; 
 
    background-color: green; 
 
    height: 30px; 
 
    width: 15%; 
 
    min-width:150px;  
 
} 
 
input { 
 
    margin:5px; 
 
    width:100px; 
 
    background: #FFF; 
 
} 
 
.list{ 
 
    margin: 0 2px; 
 
    color: #FFF; 
 
}
<div class="container"> 
 
    <div class="left"> 
 
    <input type="text"> 
 
    <span class="list">list</span> 
 
    </div> 
 
    <div class="middle1"></div> 
 
    <div class="middle2"></div> 
 
    <div class="right"></div> 
 
</div>

+0

用幅percetageを修正し、それらのすべてが単一で行? – Geeky

+0

divのいずれも 'inline'ではありません...それらはすべて非インライン表示プロパティを持っています。 –

+0

画面幅が十分に小さい場合、 'min-width:150px'はもちろん' width:15% 'よりも_more_ですので、あなたが達成しようとしていることを明確にする必要があります。 – CBroe

答えて

1

あなたは、ディスプレイを使用することができ、代わりにフロートので遊んで を表示したいですかわからない:以下のスニペット同じ

チェックを達成するために曲げる

.container { 
 
display:flex; 
 
} 
 
.left { 
 
    
 
    padding: 0; 
 
    background-color: red; 
 
    height: 30px; 
 
    width: 15%; 
 
    min-width:150px; 
 
} 
 
.middle1 { 
 
    
 
    padding: 0; 
 
    background-color: blue; 
 
    height: 30px; 
 
    width: 35%; 
 
} 
 
.middle2 { 
 
    
 
    padding: 0; 
 
    background-color: grey; 
 
    height: 30px; 
 
    width: 35%; 
 
} 
 
.right { 
 
    
 
    background-color: green; 
 
    height: 30px; 
 
    width: 15%; 
 
    min-width:150px;  
 
} 
 
input { 
 
    margin:5px; 
 
    width:100px; 
 
    background: #FFF; 
 
} 
 
.list{ 
 
    margin: 0 2px; 
 
    color: #FFF; 
 
}
<div class="container"> 
 
    <div class="left"> 
 
    <input type="text"> 
 
    <span class="list">list</span> 
 
    </div> 
 
    <div class="middle1">m1</div> 
 
    <div class="middle2">m2</div> 
 
    <div class="right">right</div> 
 
</div>

希望します。

0

こんにちは、これは最良の方法ではありません。

divを3つのセクションで作成し、中間のセクションを2つのセクションに分割する必要があります。

だから基本的にはあなたが必要とする構造が

div>の3列で、その後、中央の列はconatined 2つの列があります。

しかし、ここにあなたのコードのための簡単な修正は次のとおりです。 - .middle2float:rightを適用する - あなたがそれらを表示したいんか.middle1.middle2

.container { 
    width: 100%; 
    display: table;  
} 
.left { 
    float: left; 
    display: table-cell; 
    padding: 0; 
    background-color: red; 
    height: 30px; 
    width: 15%; 
    min-width:150px; 
} 
.middle1 { 
    float: left; 
    display: table-cell; 
    padding: 0; 
    background-color: blue; 
    height: 30px; 
    width: 31%; 
} 
.middle2 { 
    float: right; 
    display: table-cell; 
    padding: 0; 
    background-color: grey; 
    height: 30px; 
    width: 31%; 
} 
.right { 
    display: table-cell; 
    background-color: green; 
    height: 30px; 
    width: 15%; 
    min-width:150px;  
} 
input { 
    margin:5px; 
    width:100px; 
    background: #FFF; 
} 
.list{ 
    margin: 0 2px; 
    color: #FFF; 
}