div 内のテキストを垂直方向に揃えるにはどうすればいいですか? 質問する

div 内のテキストを垂直方向に揃えるにはどうすればいいですか? 質問する

div にテキストを揃える最も効果的な方法を探しています。いくつか試してみましたが、どれもうまくいきません。

.testimonialText {
  position: absolute;
  left: 15px;
  top: 15px;
  width: 150px;
  height: 309px;
  vertical-align: middle;
  text-align: center;
  font-family: Georgia, "Times New Roman", Times, serif;
  font-style: italic;
  padding: 1em 0 1em 0;
}
<div class="testimonialText">
  Lorem ipsum dolor sit amet, consectetur adipisicing elit, sed do eiusmod tempor incididunt ut labore et dolore magna aliqua. Ut enim ad minim veniam, quis nostrud exercitation ullamco laboris nisi ut aliquip ex ea commodo consequat. Duis aute irure dolor
  in reprehenderit in voluptate velit esse cillum dolore eu fugiat nulla pariatur. Excepteur sint occaecat cupidatat non proident, sunt in culpa qui officia deserunt mollit anim id est laborum.
</div>

ベストアンサー1

最新のブラウザでこれを行う正しい方法は、Flexbox を使用することです。

見るこの答え詳細については。

古いブラウザで動作する古い方法については以下を参照してください。


CSS での垂直方向の中央揃え
http://www.jakpsatweb.cz/css/css-vertical-center-solution.html

記事の要約:

CSS 2 ブラウザでは、display:table/ を使用してdisplay:table-cellコンテンツを中央に配置できます。

サンプルは以下でも入手可能です。JSFiddle:

div { border:1px solid green;}
<div style="display: table; height: 400px; overflow: hidden;">
  <div style="display: table-cell; vertical-align: middle;">
    <div>
      everything is vertically centered in modern IE8+ and others.
    </div>
  </div>
</div>

#新しいブラウザのスタイルを非表示にするために、古いブラウザ (Internet Explorer 6/7) のハックをスタイルにマージすることが可能です。

div { border:1px solid green;}
<div style="display: table; height: 400px; #position: relative; overflow: hidden;">
  <div style=
    "#position: absolute; #top: 50%;display: table-cell; vertical-align: middle;">
    <div style=" #position: relative; #top: -50%">
      everything is vertically centered
    </div>
  </div>
</div>

おすすめ記事