2016-07-11 24 views
2

私は、上下のオーバーフローが隠れるように、固定高さのセルの中央にビデオを揃えようとしています。今までセルの中央にビデオを縦に並べる方法は?

私が持っている:

<table width="100%" border="0" cellspacing="0" cellpadding="0"> 
    <tr> 
    <td height="150" style="display: block; overflow: hidden; vertical-align: middle;"> 
    <div style="position: relative;"> 
     <video autoplay loop width="100%" style="display: block;"> 
     <source src="http://www.w3schools.com/html/mov_bbb.mp4" type="video/mp4"> 
     </video> 
    </div> 
    </td> 
    </tr> 
</table> 

しかし、「垂直整列:中央を。」 "td"では何もしていないようです。

私は真ん中の150個のピクセルを見て探していますが、現在、それは助けることができている人にとって、トップ150 ...

を見せて、私のJSfiddle例へのリンク: https://jsfiddle.net/xtxkm02a/1/

ありがとうございます。

+0

は 'ディスプレイ取り除く:あなた' td'からblock'を隠しオーバーフローとdiv要素を挿入します。 'display:block'では' display:table-cell'を上書きしています。 – Phil

+0

レイアウトのテーブルを使用しない、テーブルは表形式のデータのみです – Pete

答えて

0

ここに私のコメントに加えてコードです。

table { 
 
    height: 300px; 
 
    border: 1px solid #000; 
 
} 
 
table td { 
 
    border: 1px solid #f00; 
 
    overflow: hidden; 
 
    vertical-align: middle; 
 
    height: 30px; 
 
} 
 
.video { 
 
    overflow: hidden; 
 
    height: 150px; 
 
} 
 
.video video { 
 
    width: 100%; 
 
    margin-top: -75px; 
 
}
<table width="100%" border="0" cellspacing="0" cellpadding="0"> 
 
    <tr> 
 
     <td valign="center" style=""> 
 
      <div class="video"> 
 
       <video loop> 
 
        <source src="http://www.w3schools.com/html/mov_bbb.mp4" type="video/mp4"> 
 
       </video> 
 
      </div> 
 
     </td> 
 
    </tr> 
 
</table>

+0

Phil、私の問題を見ていただきありがとうございます。私はあなたのコードを試しましたが、まだ私が探している結果を得ていません。ビデオが読み込まれると、フレームの上部が表示されているので、ビデオの中央部分を表示することはできません。 – Nalgeneo

+0

私のせいです。私は質問を正しく読まなかった。私は自分の答えを更新し、ビデオは現在中心に置かれています。外側のdivの高さと外側のdivの高さ/ 2の負のマージンの頂点が必要です – Phil

関連する問題