For an alternative explanation, with sound clips, check: Easy Croatian.
Usually, basic language courses give pronunciation rules. I find that somewhat strange — after all, a language is primarily spoken, writing can vary. If fact, over centuries, Croatian writing system did vary, but nowadays it settled to a quite simple one. Roughly, there is a rule: one sound = one letter. However, some "letters" are actually "double". But they are really considered as true letters, and have own entries in dictionaries and like.
Croatian has 6 vowels. They can be either long (like English feel) or short (like sit) but difference is not really big and not much important. They are pronounced as in Spanish or Italian (except for one). Here are vowels with approximate English sounds (for completeness, there are IPA symbols in square brackets as well). Courtesy of Brandon Bertelsen (thanks again!), you can hear these sounds as well.
|r||[r̩]||[listen]||somewhat like her, but clearly pronounced|
Consonants are more complex. Since you are not probably aiming for a speaker job at the Croatian Radio, it's OK if you don't distinguish č from ć, and đ from dž. Many people in Croatia don't distinguish them either!
|letter||IPA||English correlate, and some others|
|c||[t͡s]||[listen]||somewhat similar to cats; also in Russian tzar, German Zimmer, etc.|
|ć||[t̠͡ɕ]||[listen]||softer than č (don't worry too much)|
|đ||[d̠͡ʑ]||[listen]||softer than dž (don't worry too much)|
|h||[x]||[listen]||similar to Scottish loch, rougher than English hat|
|lj||[ʎ]||[listen]||somewhat like million; also in Portuguese olho, Italian figlio|
|nj||[ɲ]||[listen]||somewhat like onion; also in Spanish señora, Italian bagno|
|r||[r]||[listen]||it's hard to match; it's somewhat "clearer" than English rough|
|v||[ʋ]||[listen]||between very and wave (don't worry too much about this one)|
|ž||[ʒ]||[listen]||vision; Portuguese jogo; Turkish jale|
Croatian spelling does not use letters q, x, y, and w, except in foreign names and like.
How to know when an r is used as a vowel, and when as an consonant? Well, if it's in an "impossible" position, then it's surely a vowel, e.g.:
trg "square" (in a city)
I took some liberty to introduce "matres lectionis" — symbols I have personally invented, that are never used in the real life, or by anyone else — but indicate important letters that are not distinguished in ordinary writing at all.
First, on some e's I have placed two dots (ë) to indicate that it's somewhat special. It's because the sequence ijë is by most people not pronounced as /ijë/, but much closer to /je/ (that is, not as two syllables), except when it's at the end of the word, then it's pronounced just like /ije/. But when an e is not marked, it means that everybody pronounces it as /ije/:
prijë "before" — pronounce just as written, because it's at the end
nijedan "no one" — pronounce just as written, because the e is not marked
uvijëk "always" — pronounce actually much closer to /uvjek/ (two syllables, /u-vjek/), since the e is marked
If an i is not pronounced, why did I mark the e following it!? One reason is that it can change in plural of some words — i is just dropped:
cvijët "flower" — most people pronounce it much closer to /cvjet/
cvjëtovi "flowers" — (mind the spelling!)
I must confess that spelling of ije (and its mutation to je) was responsible for 90% of my spelling errors in primary school. It's a nightmare for many people. It's impossible to learn for many, since it's pronounced as if spelled as je, so many people are guessing all the time where to spell ije and where je. It's frequently called "the infamous ije".
Second, on some a's I have placed the dots (ä) to indicate "inconstant a". It's that in some words an a is "automatically" inserted in consonant clusters at the end of the word. Now, nobody makes mistakes with this, but you will — because you'll like learn the forms with an inserted a, and will be unsure where it disappears! For instance, let's see the word "dog":
psi "dogs" — you'll see later, plural of some nouns is made by adding an -i
päs "dog" — the singular cannot be ps, an a is automatically inserted
That's how it looks from the standpoint of the plural, but from the standpoint of singular, the a was dropped. Now, there are words ending on -as (e.g. pojas "belt") where nothing is dropped (pl. pojasi "belts") — how are you going to know which a's are dropped? Hence the notation. Of course, the ä is pronounced just like another a.
If an ä is found in the middle of the word, then it's not dropped at all, it means something completely different, e.g. mägla "fog". Just pronounce it as any a until it gets important!
Finally, I have added two dots on some i's (ï) — just disregard them and treat is as any other i until it gets important.
There's a special notation invented for this course. It consists of two dots (¨).
Most people actually pronounce sequence ijë when not at the end of the word as /je/
Otherwise, pronounce an ä, ï, or ë just if there were no dots.
The notation ä signifies an a that likely disappears in some forms of the word, but only if it's the last vowel. If it's not, it never disappears.
The Baška Tablet, one of oldest Croatian writings, not written in the modern alphabet
A short video on letters and spelling (not my creation, found it on the net):