Multilevel dropdown navigation menus with YouTube videos embedded below them via iframes have been posing rendering issues in certain web browsers. While the dropdown menu appears on top of the video in Firefox, only a sliver of it remains visible in Chrome and IE9.
The culprit, surprisingly, is not the iframe, but the YouTube video itself. When targeting the iframe to other external websites, the dropdown menu displays properly even in IE. This points to a possible problem with YouTube's embed code.
Experts recommend incorporating the wmode parameter, which has two values:
Despite limited documentation explaining its effect, appending this parameter to the video's URL, as seen in the below example, resolves the issue:
<iframe title="YouTube video player" width="480" height="390" src="http://www.youtube.com/embed/lzQgAR_J1PI?wmode=transparent" frameborder="0" wmode="Opaque">
Alternatively, a jQuery script can also be used to modify all iframes on a page:
//Fix z-index youtube video embedding $(document).ready(function (){ $('iframe').each(function(){ var url = $(this).attr("src"); $(this).attr("src",url+"?wmode=transparent"); }); });
This approach successfully revokes the z-index dominance of YouTube videos, allowing dropdown menus and other elements to render correctly atop them.
The above is the detailed content of Why do YouTube iframes in dropdown menus render differently in different browsers?. For more information, please follow other related articles on the PHP Chinese website!