You can pretty much learn anything online these days if you know where to look and if you are willing to pay a buck or two in the process.
Books are still my go to method for primary learning for two main reason. They run in sequential order guiding you along the process and secondly you can write on them. Those two things are still missing from an online course or free video online. But also, they're portable. You can pick them up and set them anywhere and not have to worry about internet or power.
If you are new to web development, or just need to brush up on your skills I definitely suggest you pick up the following 3 books in order to set up a strong foundation and begin to build your amazing portfolio's.
HTML & CSS: Design and build websites
I'm a big fan of visual learning. There is something about seeing a large and colorful 'thing' that makes it stick around in you memory longer. This book looks fantastic and that's the biggest selling point for me. It definitely does a decent job at covering the fundamental principles of HTML and CSS, but it does so in a fun page-turning way.
That's what makes this book great for anyone starting out. Instead of spending hours reading through paragraph after paragraph of definitions and technical jargon, you get to see what the entire process looks like in book form.
There are full-color screenshots of actual code with the actual output presented throughout the reading with clear instructions so that by the end, you too can have your own static HTML and CSS webpage set up. You can pick up a copy here.
But definitely don't let that put you off from getting it. It is a handy resource that you are going to need at some point, believe. The first time that you find yourself needing to remember how closures work in JS, you'll wish you had this book.
You can pick up a copy right over here.
3. Understanding ECMAScript6
You can pick that book up over here.