Is defining width for all objects (inputs, divs etc.) with percentage is a good way for making design fit for smartphones? Or what other way to do it?
I would recommend you use a less flexible layout, and instead use media queries. You can specify a set of rules in case the browser window is less than Npx width.
You should check out Twitter Bootstrap to help with this.