You should be able to build the whole site in a subdirectory or on a different domain so the client can see. When it's time to take the new site live, move everything currently in the root to a new subdirectory. I use old-site all the time. Then move everything new in.
If the current site is on WordPress you can move the whole site (except for index.php) to a sub directory now and make a few tweaks so it displays as usual. You'll need to do the same things you do to set that up in the first place. Change index.php so it points to the new folder and change the settings on the admin side (Think it's just the one in the general settings tab). Instead of moving things to the new folder you can copy them until you know everything is working from the new folder.
Then build the new site under its own folder. When it's time to switch you just need to set the new site to be located in the folder while the home page shows at the root. You'll just have to change the same index.php file that's in the root to point to the new site instead of the old one.
Bookmarks