2017-05-11 12 views
-2

2つのテキスト要素の間にボタンを垂直方向に配置しようとしています divの高さを同じに設定し、内側のdivにvertical-align: middle;を正しく配置できません。2つの要素の間に垂直に配置できません

はあなたが役立つことを願って、ここに私のコードは次のとおりです。あなたがこれを達成するためにflexboxを使用することができます

#in { 
 
    display: inline-block; 
 
    vertical-align: middle; 
 
    height: 200px; 
 
} 
 

 
#out { 
 
    height: 200px; 
 
}
<div id="out"> 
 
    <textarea rows="10" cols="40"></textarea> 
 
    <div id="in"> 
 
    <input type="button" value="switch"> 
 
    </div> 
 
    <textarea rows="10" cols="40"></textarea> 
 
</div>

+0

この質問は前に何度も頼まれました。例を見てみましょう:http://stackoverflow.com/questions/79461/vertical-alignment-of-elements-in-a-div –

+1

垂直方向の整列方法については、何百もの類似の質問があります。Googleでの簡単な検索では、答え。質問を投稿する前に少しの調査/研究をしてください。 – Pete

+0

@ペテ - 注意してください。 textarea要素を含む垂直方向の配置は、ブラウザ間で一貫しません。一般的な解決策はうまくいかないかもしれません。 – Alohci

答えて

1

vertical-align: middleを使用すると、インライン要素にのみ影響します。

プレゼンテーションのために完全に必要な場合はレイアウトの配置ではなく、要素の高さを使用するよう常に努力する必要があります。

#in { 
 
    display: inline-block; 
 
    vertical-align: middle; 
 
} 
 

 
#out { 
 
    display: -webkit-box; 
 
    display: -ms-flexbox; 
 
    display: flex; 
 
    -webkit-box-align: center; 
 
     -ms-flex-align: center; 
 
      align-items: center; 
 
    -ms-flex-line-pack: center; 
 
     align-content: center; 
 
    -webkit-box-pack: center; 
 
     -ms-flex-pack: center; 
 
      justify-content: center; 
 
    height: 200px; 
 
}
<div id="out"> 
 
    <textarea rows="10" cols="40"></textarea> 
 
    <div id="in"> 
 
    <input type="button" value="switch"> 
 
    </div> 
 
    <textarea rows="10" cols="40"></textarea> 
 
</div>

関連する問題