It’s not impossibly hard, but it definitely isn’t an easy task either. At least, for me.
Responsive design (websites that display nicely regardless of your browser window’s size) is kind of the thing lately, and it can tie nicely into making your website mobile-friendly. Emphasis there is on can, since this is far from always the case. Problem here is, just making sure all the element’s width are responsive, and elements don’t weirdly overlap isn’t enough. “Mobile-friendly” means a lot more than making things work on small screens.
There’s a certain… user experience that, these days, is expected when it comes to websites that take mobile into account. A touch-screen is a way different interface than the keyboard and mouse you use on a desktop computer. Those aren’t the biggest factor here, but they’re an easy example. Mobile people like tapping at things, and that’s all they can do as far as actual interaction with your web page goes. (Let’s not take the whole “supporting gestures for easy site navigation” thing into account here.) They can’t hover their finger over an element to have it fold out or whatever, and if your forms are poorly made mobile users will have a rough time filling them in.
Luckily there are a couple things available for this, like the forms problem I mentioned. HTML5 brought along a fair amount of form types, like “email” and “number”. Mobile browsers will recognize this and display an appropriate keyboard (ie, numeric keypad for numbers) so the user can easily enter the relevant data type.
I’d put some witty joke here but I got none.