Сползает контент?
Либо тенью, как предложили выше. Либо изначально задать прозрачную рамку, а при наведении менять border-color.elem {
    border-bottom: 2px solid transparent;
}
.elem:hover {
    border-color: red;
}
Попробуй свойство outline.outline: 1px solid red;
ЕМНИП, не должен он разметку ломать