Полагаю, вы в основном говорите о расположении тех границ, которые вы добавили к :before
& :after
.
Прежде всего, когда вы используете position: absolute;
, этобудет абсолютным относительно определенного элемента.
В настоящее время это относительно всего документа.
Если вы скажете, h5 { position: relative; }
, :before
& :after
будет позиционироваться относительно h5 сих соответствующие абсолютные позиции.
После того, как вы сделали вышеупомянутое, вы обнаружите, что h5
охватывает всю ширину документа.
Это потому, что h5
display: block;
по умолчанию.display: inline-block;
будет более подходящим в этом случае.
Проверьте фрагмент ниже.
h5:before{
border-color: #dbb900;
padding: 0px 5px;
border-left: 2px solid #2f3539;
border-right: 2px solid #2f3539;
position: absolute;
content: "";
top: 50%;
left: 0px;
bottom: 0px;
height: 10px;
width: 2px;
margin: 15px auto 0px;
right: 0px;
-webkit-box-sizing: border-box;
-moz-box-sizing: border-box;
box-sizing: border-box;
}
h5:after{
border-right: 2px solid #2f3539;
position: absolute;
content: "";
top: 50%;
left: 0px;
bottom: 0px;
height: 15px; /*10px;*/
width: 2px;
margin: 15px auto 0px;
right: 0px;
/*opacity: 0;*/
-webkit-box-sizing: border-box;
-moz-box-sizing: border-box;
box-sizing: border-box;
}
h5 {
position: relative;
display: inline-block;
text-transform: uppercase;
}
<h5>My title</h5>