Hola
Cita: El aspecto más importante relacionado con los márgenes es que CSS fusiona de forma automática los márgenes verticales de los elementos de bloque.
Si en una página web dos elementos de bloque contiguos definen sus propios márgenes verticales (mediante las propiedades margin-top y margin-bottom), el navegador los fusiona de forma automática y muestra un margen vertical igual al mayor de los dos márgenes verticales.
En el siguiente ejemplo, el primer <div> define un margen inferior de 40px, mientras que el segundo <div> define un margen superior de 20px. Como se trata de dos márgenes verticales contiguos, el navegador los fusiona y se queda con el más grande (en este caso, los 40px):
div { margin-bottom: 40px; }
div { margin-top: 20px; }
La fusión automática de márgenes verticales no se realiza en los elementos posicionados mediante la propiedad float y en los elementos posicionados de forma absoluta (position: absolute).
De
http://www.librosweb.es/referencia/c...in-bottom.html
Con lo cual tal vez deberías fijar solo el border-top o el bottom con un valor de 10px.
Luego puedes corregir la posición top del primero (si usas border-bottom) mediante un padding en el contenedor, y viceversa si usas border-top.
Saludos