W zasadzie to w pewnych przypadkach (np. późne załadowanie skryptu JS, który miałby schować ten element) najpierw ujrzymy przysłaniający całą stronę blok, więc myślę, że użycie
noscript byłoby trafniejszym rozwiązaniem
#hideall {
width: 100%;
height: 100%;
background-color: gray;
color: white;
z-index: 1;
}