2012-01-28 8 views
4

Я хочу, чтобы слой DIV рисовал поверх моего набора фреймов. Я слышал, что DIV можно разместить внутри <frameset>, но это не работает для меня.Как поставить DIV над FRAMESET?

Следующий пример не работает. Я даже не вижу DIV в Firebug HTML-инспекторе.

<!doctype html> 
<html> 

<head> 

<meta http-equiv="Content-Type" content="text/html; charset=utf-8"/> 
<title>Test of frameset with div</title> 

<style type="text/css"> 
#flashContent { 
position:fixed; 
left:200px; 
bottom:200px; 
width:400px; 
height:400px; 
background-color:red; 
z-order:1000; 
} 
</style> 

</head> 

<frameset rows="*,100px" style="z-order:10"> 



<frame src="content1.html"> 
<frame src="bottom.html"> 

<div id="flashContent"> 
    Something 
</div> 


</frameset> 

</html> 
+0

Фрейм в основном объект окна. Все правила о окнах применяются к фреймам. Атрибут div относится к документу, который хранится внутри окна. Поскольку документ не может покинуть свое окно, div не может покинуть свое окно. Вы запрашиваете контроль на уровне браузера, но вам разрешено контролировать уровень документа. – Mhmd

ответ

7

Вы не можете расположить DIVs поверх framesets. Единственный способ добиться - разместить ваш DIV по номеру iFrame. По крайней мере для новых браузеров (no IE6).

В соответствии с вашим примером кода вы должны расположить ваш DIV абсолютно в том числе z-index собственности:

#flashContent { 

    position: absolute; 
    left: 200px; 
    bottom: 200px; 
    z-index: 2; 

    width:400px; 
    height:400px; 
    background-color:red; 
}