まず第一に、<img>
それは他の要素を含むことができない要素であるため、この方法を使用することはできません。
あなたがしなければならないのは、あなたの画像を背景として置き、div
正しい位置でビデオを表示することです:
<div id="tv_container">
<video width="320" height="240">
<source src="video/video.mp4" type="video/mp4" />
</video>
</div>
<style>
#tv_container {
background: url('images/tv.png') no-repeat top left transparent;
width: 400px; /* Adjust TV image width */
height: 300px; /* Adjust TV image height */
position: relative;
}
#tv_container video {
position: absolute;
top: 30px; /* Adjust top position */
left: 40px; /* Adjust left position */
}
</style>
またはの代わりにposition: relative;
、forposition: absolute;
を使用できます(ただし、に要素を追加する場合は、withのトリックの方が適しています。margin: 30px 0px 0px 40px;
#tv_container video
position
#tv_container
TV画像はよりも大きいとvideo
思いましたが、正しく表示するにはいくつかの調整が必要です。
Guilherme J Santosの回答に触発されて、テレビ画像を上のレイヤーとして使用することをお勧めしますvideo
。これにより、厳密な長方形である必要のないテレビ画面で画像を使用できるようになります。もちろん、ビデオの一部はトリミングされますが、テレビ画面のように見えます。
<div id="tv_container">
<video width="320" height="240">
<source src="video/video.mp4" type="video/mp4" />
</video>
</div>
<style>
#tv_container {
width: 400px; /* Adjust TV image width */
height: 300px; /* Adjust TV image height */
position: relative;
}
#tv_container:after {
content: '';
display: block;
background: url('images/tv.png') no-repeat top left transparent;
width: 100%;
height: 100%;
left: 0px;
top: 0px;
position: absolute;
z-index: 10;
}
#tv_container video {
position: absolute;
top: 30px; /* Adjust top position */
left: 40px; /* Adjust left position */
z-index: 5;
}
</style>
z-index
レイヤー(この場合は#tv_container:after
疑似要素)がvideo
'sより大きいことを確認してくださいz-index
。そして、1つあります。video
クリックできなくなります(レイヤーの下にあるため) @brichinsのコメントによると、レイヤーの下でビデオをクリック可能にすることもできます(ありがとう!)。
もちろん、テレビの画面部分は透明でなければなりません!