Your safest bet will be to use two elements, but if you are into progressive enhancement, you can try this method. It will work in Safari, Chrome FF 3.6+ (Prob 3.5 too), Opera (at least 10.10+), and IE8+ (In IE8 mode). It uses the :after
pseudo class to do its magic. Note: it fails to work in FF 3.0 and leaves the extra border, but in IE6 & 7 it just falls back to one border. You can check out a demo of it in action.
HTML
<div id="double">
<h2>Double Border</h2>
<p>This div <a href="#">should</a> have two borders.</p>
<p>There are only normal elements inside.</p>
</div>
CSS
#double {
border: dotted 1px #a4a4a4;
padding: 10px;
position: relative;
}
#double > * {
position: relative;
z-index: 100;
}
/* Add an "extra" element using CSS */
#double:after {
content: "";
position: absolute;
z-index: 50;
border: dotted 1px #474747;
left: 0;
top: 0;
bottom: 0;
right: 0;
display: block;
}