When you code for the browser, you reach billions of devices on Earth. But with great power comes great responsibility. And some heavy challenges..
Starting from scratch
You don't have a standard development kit. You either use a CSS framework, or do all the styling from scratch. A webpage looks really bad by default.
Inconsistent and unpredictable results: the same code doesn't render the same way on different browsers. You never get exactly what you want.
You must target both mobile and desktop, with the same codebase. You must make concessions.