特に文書上の構造とは無関係にスタイルを適用する場合のために、汎用スタイルコンテナ要素が用意されています。
ブロックレヴェルとなる場合には<div>要素、インラインにスタイルを適用する場合は<span>要素を使います。
<div>要素の本来の機能は、特定の意味を持たない形式的なブロックレヴェル要素というものです。インライン要素である<img>要素(画像埋め込み)を形式的なブロックレヴェルとするために用いましたが、特定のスタイルを当てたブロックを作るのにも使えます。
内容はブロックレヴェル要素でもインラインでも何でも構いません。
<div class="クラス名">…</div>
<span>要素はインラインにおいて論理的な意味無しでスタイルを当てる場合に用います。しかし、論理的な意味を伴わないので、多用は慎むべきものです。
例えば文字の色を変えたいと言う場合、そこには強調するとなどと言う目的があるはずです。つまり、<span>要素ではなく<em>要素に適切なスタイルを当てればいいと言う事になります。これなら、CSSを認識しないブラウザでも強調されている事が分かります。
もちろん、論理要素に適切なものが無い場合などの場合には制作者側が論理的に意味付けて使う事も出来ますが、見る側にはCSSなどの効果が無い限りその意義は全く伝わらない事をお含み置き下さい。
HTMLの論理要素には強調要素はありますが「弱くする要素」はありません。そこでその代りに弱く表示する為のスタイルを当てた<span>要素を用いると言う考えがあります。
HTMLの論理要素の扱いを厳密にすると、拡大解釈して用いられている要素を<span>要素で記述せざるを得ません。
<span class="term">要素なり<span class="loan">要素なりでマークアップすべきと言う事です。実際にはHTMLでそこまで厳格にする必要は無いのではと思いますが。以下、class属性と組み合わせた<span>要素の記述例です。
…<span class="クラス名">…</span>…