There is a scheduled bus service from the bus station in town to the airport. Buses are operated by Brioni and connect to most major flights. The cost of a one-way ticket is 25kn. A taxi from the bus station to the city should be around 85 kuna in the low season and much higher in the summer.
The large and modern bus station is on the edge of the 'old town' district and is the hub of local, domestic and international bus routes. There are direct buses from Zagreb, Rijeka, Split, Trieste, Ljubljana, Belgrade and Venice. Online timetables are listed at [5] and [6].
There is also a train station near the waterfront with services serving Istria and into Slovenia due to historical circumstance rather than back towards the rest of Croatia (though a connecting coach service operates for services to Rijeka and Zagreb). Ticket prices, timetables and other information are on the Croatian Railways [7] website.