その効果には background-gradients を使用できます。あなたの例では、次の行を追加するだけです(ベンダープレフィックスを使用する必要があるため、コードは非常に多くなります):
background-image:
-moz-linear-gradient(top, #000 10px, transparent 10px),
-moz-linear-gradient(bottom, #000 10px, transparent 10px),
-moz-linear-gradient(left, #000 10px, transparent 10px),
-moz-linear-gradient(right, #000 10px, transparent 10px);
background-image:
-o-linear-gradient(top, #000 10px, transparent 10px),
-o-linear-gradient(bottom, #000 10px, transparent 10px),
-o-linear-gradient(left, #000 10px, transparent 10px),
-o-linear-gradient(right, #000 10px, transparent 10px);
background-image:
-webkit-linear-gradient(top, #000 10px, transparent 10px),
-webkit-linear-gradient(bottom, #000 10px, transparent 10px),
-webkit-linear-gradient(left, #000 10px, transparent 10px),
-webkit-linear-gradient(right, #000 10px, transparent 10px);
background-image:
linear-gradient(top, #000 10px, transparent 10px),
linear-gradient(bottom, #000 10px, transparent 10px),
linear-gradient(left, #000 10px, transparent 10px),
linear-gradient(right, #000 10px, transparent 10px);
不要なマークアップは必要ありません。
二重の境界線が必要な場合は、境界線とパディングの代わりにアウトラインと境界線を使用できます。
疑似要素を使用して目的の効果を達成することもできますが、私はそれをお勧めしません。疑似要素は、CSS が提供する非常に強力なツールです。このようなものでそれらを「無駄にする」と、おそらく他の場所で見逃すことになります。
他に方法がない場合にのみ、疑似要素を使用します。それらが悪いからではなく、まったく逆です。ジョーカーを無駄にしたくないからです。