您可以使用背景渐变来实现该效果。对于您的示例,只需添加以下几行(代码太多,因为您必须使用供应商前缀):
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 提供的一个非常强大的工具,如果你把它们“浪费”在这样的东西上,你可能会在其他地方错过它们。
如果没有其他方法,我只会使用伪元素。不是因为它们不好,恰恰相反,因为我不想浪费我的小丑。