I want to show a div over a YouTube video but can't get it to work. I know that if you set the wmode
to transparent
or opaque
it should work, but I've only seen this work when the <embed>
or <object>
tag is used. YouTube now embeds the video in an <iframe>
so when I tried it, it didn't work. Here's what my code looks like.
<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Strict//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-strict.dtd"> <html xmlns="http://www.w3.org/1999/xhtml"> <head> <meta http-equiv="Content-Type" content="text/html; charset=UTF-8" /> <title></title> <style type="text/css">@import "reset.css";</style> <style type="text/css"> body { background:#000; font:62.5%/240% Helvetica, Arial, sans-serif; overflow:hidden; /* To avoid showing a scrollbar */ } div { background:#f00; position:absolute; min-width:100%; min-height:100px; z-index:99; } </style> </head> <body> <div></div> <iframe width="100%" height="100%" src="http://www.youtube.com/v/8lVJV--SrGg&loop=1&autoplay=1&autohide=1&hd=1&modestbranding=1" frameborder="0" allowfullscreen></iframe> </body> </html>
The z-index property specifies the stack order of an element. An element with greater stack order is always in front of an element with a lower stack order.
The z-index property determines the stack level of an HTML element. The “stack level” refers to the element's position on the Z axis (as opposed to the X axis or Y axis). A higher value means the element will be closer to the top of the stacking order. This stacking order runs perpendicular to the display, or viewport.
div { z-index: 1; /* integer */ } The z-index property in CSS controls the vertical stacking order of elements that overlap. As in, which one appears as if it is physically closer to you. z-index only affects elements that have a position value other than static (the default).
z-index only works on positioned elements. If you try to set a z-index on a non-positioned element, it will do nothing.
I added the ?wmode=opaque at the end of the embed "link" and it worked for me.
http://www.youtube.com/embed/I7a3acpVp1g?wmode=opaque worked for me. so in full it is
<iframe width="250" height="188" src="http://www.youtube.com/embed/I7a3acpVp1g?wmode=opaque" frameborder="0" allowfullscreen></iframe>
Apparently when using an iframe it sets the wmode automatically to windowed so try setting the flash player's wmode directly by modifying the iframe src like so:
src="http://www.youtube.com/v/8lVJV--SrGg?loop=1&autoplay=1&autohide=1&hd=1&modestbranding=1&wmode=opaque"
As you can see I added &wmode=opaque
to the end of the parameter list. That should enable you to now overlay a div. Parameters also start with a ?
, not a &
.
If you love us? You can donate to us via Paypal or buy me a coffee so we can maintain and grow! Thank you!
Donate Us With