CSS では常に :before を使用して、コンテンツをセレクターの前に置くことを意味してきました。これで問題が発生したことは一度もありませんが、セレクターの :before が要素の前に来るのではなく、要素の内側に追加されている場所を混乱させるものに出くわしました。なぜそうなのかわかりません。
ここにフィドルがあります:http://jsfiddle.net/vMtct/1/
そして、ここに基本的なコードがあります:
<div class="block">
<p>But this <p> will have content <em>before</em>.</p>
</div>
.block {
margin: 0 auto;
width: 250px;
height: 250px;
background: #ffffff;
border: 1px solid #cccccc;
padding: 50px; }
.block:before {
background: #eeeeee;
content: "Here is something that print's inside the selector";
display: block;
padding: 20px;
margin-bottom: 20px; }
p:before {
display: block;
content: ">>>"; }