Ma scusa, se devi nascondere qualcosa, nn puoi semplicemente rendere invisibile la parte che ti interessa invece di metterci un qualcosa sopra? In ogni caso, qui sotto c'è il codice funzionante commentato nei punti in cui l'ho modificato.
Codice PHP:
<!DOCTYPE html>
<html>
<head>
<meta http-equiv="Content-type" content="text/html;charset=utf-8">
<title>Test</title>
<style type="text/css">
#nascosto { /*dal nome sembrerebbe la roba da cancellare*/
width: 200px;
height: 200px;
background-color: #666666;
/*qui serve relative, o nulla.*/
position: relative;
/*qui dai un margine negativo pari all'altezza del "nasconditore"*/
margin-bottom: -200px;
}
#padre {
overflow-x: hidden;
overflow-y: scroll;
height: 300px;
}
</style>
<script type="text/javascript">
/*preferibile usare l'attributo visibility invece di display*/
function mostra(){
document.getElementById("nascosto").style.visibility = "visible";
}
function nascondi(){
document.getElementById("nascosto").style.visibility= "hidden";
}
</script>
</head>
<body>
<div id="padre">
/*In una pagina vera ti sconsiglio di contornare tutto da <div>
E non servono mille livelli di annidamento, metti tutto dentro #padre e stop
*/
<div> test test test </div>
<div> test test test </div>
<div> test test test </div>
<div> test test test </div>
<div> test test test </div>
<div> test test test </div>
<div> test test test </div>
<div> test test test </div>
<button onclick="mostra()">Mostra</button>
<button onclick="nascondi()">Nascondi</button>
<div id="nascosto" style="visibility:hidden;">roba nascosta</div>
<div>1 test test test </div>
<div>2 test test test </div>
<div>3 test test test </div>
<div>4 test test test </div>
<div>5 test test test </div>
<div>6 test test test </div>
<div>7 test test test </div>
<div>8 test test test </div>
<div>9 test test test </div>
<div>10 test test test </div>
<div>11 test test test </div>
<div>12 test test test </div>
<div>13 test test test </div>
<div>14 test test test </div>
</div>
</body>
</html>