2017-07-27 9 views
0

私は2つのinline-block divsをお互いに隣り合わせに持っています。左は可変の高さで、右は内側にボタンがあります。真ん中の縦に整列するインラインブロックdiv

右のdivを常に左のdivと垂直方向の中央に配置します。ここで

は、それがどのように見えるかです:それはinline-blockそれらを維持し、まだ垂直方向に他の1つのdiv相対を中心に可能かどうhttps://jsfiddle.net/6xm23fv6/1/

誰もが知っていますか?

#container { 
 
    width: 500px; 
 
    height: 300px; 
 
    border: 1px solid grey; 
 
} 
 

 
.inlineDiv { 
 
    display: inline-block; 
 
} 
 

 
#inlineDiv1 { 
 
    border: 1px solid blue; 
 
} 
 

 
#inlineDiv2 { 
 
    border: 1px solid red; 
 
}
<div id="container"> 
 
    <div id="inlineDiv1" class="inlineDiv"> 
 
    <table> 
 
     <tr> 
 
     <td>Hi there</td> 
 
     </tr> 
 
     <tr> 
 
     <td>Hi there</td> 
 
     </tr> 
 
     <tr> 
 
     <td>Hi there</td> 
 
     </tr> 
 
     <tr> 
 
     <td>Hi there</td> 
 
     </tr> 
 
     <tr> 
 
     <td>Hi there</td> 
 
     </tr> 
 
     <tr> 
 
     <td>Hi there</td> 
 
     </tr> 
 
     <tr> 
 
     <td>Hi there</td> 
 
     </tr> 
 
     <tr> 
 
     <td>Hi there</td> 
 
     </tr> 
 
    </table> 
 
    </div> 
 
    
 
    <div id="inlineDiv2" class="inlineDiv"> 
 
    <button>Hi</button> 
 
    </div> 
 
</div>

答えて

2

vertical-align動作するはずです:

#inlineDiv1 { 
    border: 1px solid red; 
    vertical-align: middle; 
} 

フィドル:https://jsfiddle.net/6xm23fv6/2/

EDIT:この後のインラインブロックの場合
を、私たちは「リセットするだけだと思います'垂直方向の整列はブロック内の最初の2つをラップすることですそれはまた、例えば新しいvertical-align: top

display: inline-blockに設定されています:https://jsfiddle.net/6xm23fv6/4/

+0

、[OK]を質問でこれを指定しないため申し訳ありませんが、私は上の別の 'インラインblock' div要素を持っている場合右側には 'vertical-align:middle; 'を取り消す方法がありますので、それは左のdivと一番上に並んでいますか?つまり、真ん中のdivが垂直に中央に配置されています – MarksCode

+0

私が考えることができる唯一の方法は、最初の2つを独自のインライン単位でラップすることです。上記の他のフィドルを見てください。 –

+1

実際に私はどのようにして、最後のものに 'vertical-align:top'を入れたかを知りました。 – MarksCode

0

はい、両方の要素の周囲にコンテナを追加し、それdisplay:flex;します。コードスニペットを確認してください。

#container { 
 
    width: 500px; 
 
    height: 300px; 
 
    border: 1px solid grey; 
 
} 
 

 
.inlineDiv { 
 
    display: inline-block; 
 
} 
 

 
#inlineDiv1 { 
 
    border: 1px solid blue; 
 
} 
 

 
#inlineDiv2 { 
 
    border: 1px solid red; 
 
} 
 

 
.ctn { 
 
    display:flex; 
 
    align-items:center; 
 
    flex-wrap: nowrap; 
 
    
 
}
<div id="container"> 
 
<div class="ctn"> 
 
    <div id="inlineDiv1" class="inlineDiv"> 
 
    <table> 
 
     <tr> 
 
     <td>Hi there</td> 
 
     </tr> 
 
     <tr> 
 
     <td>Hi there</td> 
 
     </tr> 
 
     <tr> 
 
     <td>Hi there</td> 
 
     </tr> 
 
     <tr> 
 
     <td>Hi there</td> 
 
     </tr> 
 
     <tr> 
 
     <td>Hi there</td> 
 
     </tr> 
 
     <tr> 
 
     <td>Hi there</td> 
 
     </tr> 
 
     <tr> 
 
     <td>Hi there</td> 
 
     </tr> 
 
     <tr> 
 
     <td>Hi there</td> 
 
     </tr> 
 
    </table> 
 
    
 
    </div> 
 
    
 
    <div id="inlineDiv2" class="inlineDiv"> 
 
    <button>Hi</button> 
 
    </div> 
 
    
 
    </div> 
 
</div>

1

試み: {垂直整列:ミドル;}

関連する問題