Lo que sucede es que z-index trabaja con los que tienen ya posiciones. Es decir cuando hayas declarado position, float, left, right, top o bottom, te recomiendo esta lectura
http://www.librosweb.es/referencia/css/z-index.html
Código HTML:
Ver original<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN"
"http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
*{ margin: 0; padding: 0; }
iframe{
width: 300px;
height: 300px;
background-color: #000;
}
#wrap{
width: 300px;
margin: 0 auto;
position: relative;
}
#div1{
position: absolute;
top: 100px;
left: 100px;
width: 100px;
height: 100px;
z-index: 100;
background-color: #fff;
}