テキスト行のインラインブロックを垂直方向に揃える方法を教えてください。


136

不明な幅と高さを取るインラインブロックを作成したいと思います。(その中に動的に生成されたコンテンツを含むテーブルがあります)。さらに、インラインブロックは、「my text(BLOCK HERE)」などのテキスト行内に配置する必要があります。見栄えをよくするために、ブロックを行の垂直方向の中央に配置しようとしています。したがって、ブロックが次のようになっている場合:

TOP
MIDDLE
BOTTOM

次に、テキスト行は「My text([MIDDLE])」(行の上下にTOPとBOTTOMがある)になります。

これが私が今まで持っているものです。

CSS

.example {
  background-color: #0A0;
  display: inline-block;
  margin: 2px;
  padding: 2px;
  position: relative;
  text-align: center;
}

HTML

<div class="example">TOP<br />MIDDLE<br />BOTTOM</div>

例


5
多分それを描き、あなたが望むものの画像を投稿してください。多分それは私ですが、あなたが何を求めているのか私にはわかりません。
ブレント修道士、

回答:


168

code {
    background: black;
    color: white;
    display: inline-block;
    vertical-align: middle;
}
<p>Some text <code>A<br />B<br />C<br />D</code> continues afterward.</p>

Safari 5およびIE6 +でテストおよび動作します。


私は同様の問題であなたの解決策を使用しましたが、CSS Triangleを中央に配置しようとしています。ただし、完全に中央に配置されるわけではありません。完全に中央揃えにするために、レシピに何を追加できますか?
CodyBugstein 14年

@Imrayの位置:相対?
NinoŠkopac15年

23

display: inline-block あなたはあなたの友達です、あなたは構成要素の3つの部分すべてが必要です-前、「ブロック」、後-1つになるために、それらを垂直に中央に揃えることができます:

実例

(とにかくあなたの写真のように見えます;))

CSS:

p, div {
  display: inline-block; 
  vertical-align: middle;
}
p, div {
  display: inline !ie7; /* hack for IE7 and below */
}

table {
  background: #000; 
  color: #fff; 
  font-size: 16px; 
  font-weight: bold; margin: 0 10px;
}

td {
  padding: 5px; 
  text-align: center;
}

HTML:

<p>some text</p> 
<div>
  <table summary="">
  <tr><td>A</td></tr>
  <tr><td>B</td></tr>
  <tr><td>C</td></tr>
  <tr><td>D</td></tr>
  </table>
</div> 
<p>continues afterwards</p>
弊社のサイトを使用することにより、あなたは弊社のクッキーポリシーおよびプライバシーポリシーを読み、理解したものとみなされます。
Licensed under cc by-sa 3.0 with attribution required.