1. ホーム
  2. html

[解決済み] divの中のテキストを縦に揃えるにはどうしたらいいですか?

2022-03-17 20:08:17

質問

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>

解決方法は?

モダンブラウザでは、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>