Vous pouvez utiliser des dégradés d'arrière-plan pour cet effet. Pour votre exemple, il suffit d'ajouter les lignes suivantes (cela fait beaucoup de code car vous devez utiliser les préfixes des fournisseurs) :
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);
Pas besoin de balises inutiles.
Si vous souhaitez simplement avoir une double bordure, vous pouvez utiliser outline et border au lieu de border et padding.
Bien que vous puissiez également utiliser des pseudo-éléments pour obtenir l'effet désiré, je vous le déconseille. Les pseudo-éléments sont un outil très puissant fourni par CSS, si vous les "gaspillez" pour des trucs comme ça, vous allez probablement les manquer ailleurs.
Je n'utilise les pseudo-éléments que s'il n'y a pas d'autre moyen. Pas parce qu'ils sont mauvais, bien au contraire, car je ne veux pas gaspiller mon Joker.