If it's static page which doesn't need user input or data, the easiest thing that comes to mind is linking to a ZIP file. You could link to a text file too so that it's easier for the user to copy and paste. But generally speaking, if you link to a resource the user's browser understands, the browser will try to render the content and make it a little trickier for the user to save.
Alternatively, as Al.G. pointed out below, you can set a header in PHP to download the webpage rather than render it. You can do this as follows:
<?php
header('Content-Disposition: attachment; filename="example.html"');
?>
<!DOCTYPE html>
<html>
<head>
<style type="text/css">
...
</style>
<script type="text/javascript">
...
</script>
</head>
<body>
<div id="body-wrap">
....
</div>
</body>
</html>
Whenever the user visits the PHP page, it will download all of the HTML, CSS, and JavaScript after the initial closing PHP tag. Perhaps you could link to the page they're viewing and say "download this page", which links to a copy with that PHP bit at the top?