<em> and <strong> are semantic, <i> and <b> are presentational. <em> means emphasized, and while the default is having emphasized text displayed in italics, you could choose to have it underlined, or red, or in a different font... <i> means italic, and while it is possible to change its appearance with CSS, it would be weird to have an <i> element that's not italic. It's basically a matter of style, with the content and presentation separation encouraged by HTML+CSS, semantic markup is preferred.
|