I have a live website and I want to test different themes and add some other functionality without risking messing up my running website. Is there any way I can test all changes and commit before actually making the changes visible on my site? Perhaps by testing on localhost? Also I had a customised theme which is not 100% width is there any way i can make it 100% width?
If I got you correctly, WP Theme Test is such a plugin that can assist you.
In my case I take the whole live site in localhost, by copying the whole WordPress installation and its database, and then test any new theme on it (or any modification to existing theme). If the local test passed, then I go for the live site test. And for a live site theme testing, plugin like WP Theme Test is very helpful. (There's a plugin called Theme Test Drive, but the plugin retired recently)
Without taking the whole site into maintenance the plugin will activate the new theme only for logged in
administrator user[s]. So you can check all the things of that theme in your live site without leaving any trace to any visitor or any other logged in users (other than admins).
So if everything shows alright, you can disable the Theme Test mode and disable the plugin too; and you are green to activate your new theme to the live site and configure it as it needs.
For the transitional period when you are going to change the theme, plugin like Easy Maintenance Mode is very helpful. You can take the whole site in maintenance mode from visitors with a nice message and social network's links and with Google Analytics code, so the site will be safe for any visitor (because they will notified with the message and will be in touch with the social links), and for Google crawler (because you will still get your analytics). After completely setting up your new theme, you can disable the maintenance mode, and make the site live again, with a big smile. :)
But always take backup before a big change, because if anything go wrong, you can then have a restore point to back to. :)
The easiest method is to migrate your current WordPress site into a new folder or server using e.g. All-in-One WP Migration. Then make all changes on new WordPress. As far as I'm concerned WordPress doesn't have "testing" environment and making one requires much knowledge.
About making it 100%. Go to page and right click on it, then "inspect element". When you select element in new window, you will see its styles on the right pane.
Try selecting highest elements in your page (html, body, container divs, sections) and change their width to the one desired.
All changes you will make in "inspector" will only affect the copy of site in your browser. Not the actual site.